我有一个ASP.net gridview,我正在尝试绑定.我的DataSource有一个集合,我绑定的2列是子类的一部分.我的DataSource有一个名为Staff的子类,其中包含人员信息.Boundfields SurveyID和NumberOfExceptions绑定正常,但Staff.Name和Staff.Office无法绑定.
asp:BoundField DataField="SurveyID" HeaderText="ID" ...
asp:BoundField DataField="Staff.Name" HeaderText="Name" ...
asp:BoundField DataField="Staff.Office" HeaderText="Office" ...
asp:BoundField DataField="NumberOfExceptions" HeaderText="Exceptions" ...
Run Code Online (Sandbox Code Playgroud)
而背后的代码是:
uxSurveyGrid.DataSource = searchResults;
uxSurveyGrid.DataBind();
Run Code Online (Sandbox Code Playgroud)
如果我输入searchResults[0].Staff.Name后面的代码我可以看到值,为什么运行时无法在gridview中评估Staff.Name?
如何将列绑定到子类值?我是否必须在代码隐藏中执行此操作?
任何帮助,将不胜感激,
标记.
我相信你可以使用Template字段和标记scriptlet来实现这一点......
<asp:TemplateField>
<ItemTemplate>
<asp:Label Id="lblSubclassVal" runat="server" Text="<%# DataBinder.Eval(Container.DataItem, "SubClass.PropertyName")%>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
ASP.NET GridView背后的数据绑定机制仅支持一个级别绑定.(与在绑定到DataSet/DataTable/DataView的情况下支持多级的WinForms Binding对应物相反).
您有三种可能的解决方案:
| 归档时间: |
|
| 查看次数: |
10499 次 |
| 最近记录: |