【发布时间】:2016-12-04 19:13:06
【问题描述】:
我有<asp:FormView ID="FormView1" runat="server">。
在我的代码隐藏 Page_Load 中,我将一个 SQL 数据源绑定到 FormView1。
我需要在 FormView1.DataBind(); 之后访问 Page_Load 中 DataSource 中某个字段的值。
在本地窗口调试期间,我可以看到 FormView1 的 DataItem 属性中的所有字段。
但是我无法弄清楚访问任何这些字段的值的代码。
注意:此字段未在表单中使用。我需要它的值来设置 asp:label 的可见性开/关。
FormView1.DataSource = from prop in dataContext.Properties
join sub in dataContext.SuburbsWithProperties on prop.SuburbID equals sub.SuburbID
where prop.PropertyID == propNo
select new
{
prop.PropertyID,
prop.SuburbID,
prop.Rent,
etc
}
**** 因此,在 ConnorsFan 的帮助下,我能够获得我的字段值。
var dataItem = formView1.DataItem as object;
var dataItemFields = dataItem.GetType().GetProperties().ToDictionary(x => x.Name, x => x.GetValue(dataItem, null));
var fieldValue = (string)dataItemFields["MyFieldName"];
【问题讨论】: