有没有办法获得由实体数据源控制的值之一,并在代码中使用它? 例如,我的实体使用值x,y,z加载listview,并且我希望仅获得值y以便在代码中进一步使用。
我试图做的是直接从它加载它的listview项获取值,但不知何故它返回空字符串,当在视图标签上加载数据时:
foreach (ListViewItem item in Auction.Items) { var PriceName = item.FindControl("PriceName") as Label; string pln = PriceName.Text; //Here it returns empty string var EurName = e.Item.FindControl("EurName") as Label; Repositories.ICurrencyRepository repo = new Repositories.ICurrencyRepository(); decimal eur = Math.Ceiling(repo.CurrencyExchange(Convert.ToDecimal(pln), "PLN", "EUR") * 100) / 100; EurName.Text = eur.ToString(); }Is there a way to get one of the values given to control by entity data source, and use it in code? For example my entity loads listview with values x, y, z and I want to get only value y for further usage in code.
What i tried to do, was get value directly from a listview item that it loads it to, but somehow it returns empty string, when on view label is loaded with data:
foreach (ListViewItem item in Auction.Items) { var PriceName = item.FindControl("PriceName") as Label; string pln = PriceName.Text; //Here it returns empty string var EurName = e.Item.FindControl("EurName") as Label; Repositories.ICurrencyRepository repo = new Repositories.ICurrencyRepository(); decimal eur = Math.Ceiling(repo.CurrencyExchange(Convert.ToDecimal(pln), "PLN", "EUR") * 100) / 100; EurName.Text = eur.ToString(); }最满意答案
如果有人会遇到同样的问题,我想出的答案就是:
protected void Auction_ItemDataBound(object sender, ListViewItemEventArgs e) { ListViewDataItem dataitem = (ListViewDataItem)e.Item; decimal pln = Convert.ToDecimal(DataBinder.Eval(e.Item.DataItem, "Price")); Repositories.ICurrencyRepository repo = new Repositories.ICurrencyRepository(); decimal eur = Math.Ceiling(repo.CurrencyExchange(pln, "PLN", "EUR") * 100) / 100; var EurName = e.Item.FindControl("EurName") as Label; EurName.Text = eur.ToString(); }关键是DataItem属性,它接受加载到listview的值(此处值名为“Price”,取自连接到数据库表的实体数据源)。 问题是,我不知道它的存在。
If someone will have the same problem, here is the answer i came up with:
protected void Auction_ItemDataBound(object sender, ListViewItemEventArgs e) { ListViewDataItem dataitem = (ListViewDataItem)e.Item; decimal pln = Convert.ToDecimal(DataBinder.Eval(e.Item.DataItem, "Price")); Repositories.ICurrencyRepository repo = new Repositories.ICurrencyRepository(); decimal eur = Math.Ceiling(repo.CurrencyExchange(pln, "PLN", "EUR") * 100) / 100; var EurName = e.Item.FindControl("EurName") as Label; EurName.Text = eur.ToString(); }The key was DataItem property, it takes values that are loaded to the listview (here value is named "Price" and is taken from entity data source connected to database table). Problem was, i didn't knew of its existence.
更多推荐
发布评论