首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

GridView绑定List有数据但不显示。解决方案

2012-04-14 
GridView绑定List有数据但不显示。GridView列定义:C# codeColumnsasp:HyperLinkField DataNavigateUrlFi

GridView绑定List有数据但不显示。
GridView列定义:

C# code
            <Columns>                <asp:HyperLinkField DataNavigateUrlFields="DeptID" DataNavigateUrlFormatString="DeptD.aspx?DeptID={0}"                    DataTextField="DeptID" HeaderText="部门代码" />                <asp:BoundField DataField="DeptName" HeaderText="部门名称" />                <asp:BoundField DataField="DeptManager" HeaderText="部门主管" />                <asp:BoundField DataField="DeptRemark" HeaderText="备注" />                <asp:HyperLinkField DataNavigateUrlFields="DeptID" DataNavigateUrlFormatString="DeptD.aspx?DeptID={0}"                    HeaderText="修改" Text="修改" />            </Columns>


数据绑定:
C# code
        bDept bll = new bDept();        List<eDept> items = bll.SelectAll();        this.GridView1.DataSource  = items;        this.GridView1.DataBind();


运行后,可以看到GridView中的行数与数据库中表的资料行数一致,说明已经查到数据(我还特意只查Top N条数据发现也是一致的),但不显示出来(每一行只显示修改这一列,其它几列都是空的)

[解决办法]
eDept 是怎么定义的
[解决办法]
在gridview的DataBind()前,你用for循环输出泛型list的各属性看看,有值没有。
[解决办法]
使用模板列,然后使用<%#%>方式获取值,如下面红色部分,其他的同样修改就可以了。

 <Columns>
<asp:HyperLinkField DataNavigateUrlFields="DeptID" DataNavigateUrlFormatString="DeptD.aspx?DeptID={0}"
DataTextField="DeptID" HeaderText="部门代码" />
// <asp:BoundField DataField="DeptName" HeaderText="部门名称" />
<asp:TemplateField HeaderText= "部门名称 ">
<ItemTemplate>
<%# ((eDept)Container.DataItem).DeptName%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="DeptManager" HeaderText="部门主管" />
<asp:BoundField DataField="DeptRemark" HeaderText="备注" />
<asp:HyperLinkField DataNavigateUrlFields="DeptID" DataNavigateUrlFormatString="DeptD.aspx?DeptID={0}"
HeaderText="修改" Text="修改" />
</Columns>

热点排行