当前位置:  开发笔记 > 后端 > 正文

如何将gridview列绑定到子类值?

如何解决《如何将gridview列绑定到子类值?》经验,为你挑选了2个好方法。

我有一个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" ...

而背后的代码是:

uxSurveyGrid.DataSource = searchResults;
uxSurveyGrid.DataBind();

如果我输入searchResults[0].Staff.Name后面的代码我可以看到值,为什么运行时无法在gridview中评估Staff.Name?

如何将列绑定到子类值?我是否必须在代码隐藏中执行此操作?

任何帮助,将不胜感激,

标记.



1> Josh Stodola..:

我相信你可以使用Template字段和标记scriptlet来实现这一点......

    
        
            ">
        
    



2> Sergiu Damia..:

ASP.NET GridView背后的数据绑定机制仅支持一个级别绑定.(与在绑定到DataSet/DataTable/DataView的情况下支持多级的WinForms Binding对应物相反).

您有三种可能的解决方案:

    处理每行的ItemDataBound事件

    使用公开子对象属性的属性扩展根级实体,并使用这些属性作为绑定表达式

    您可以使用模板字段而不是使用BoundField,并使用访问数据项的<%=%>表达式生成内容.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有