读书人

GridView控件数据为空时不能正常显示

发布时间: 2012-01-13 22:43:29 作者: rapoo

GridView控件数据为空时,不能正常显示的问题
我已经设置了 <EmptyDataTemplate> ,可是数据为空时,仍然不能正常显示表头。

为此,我在网上找了很多资料,按照其中的方法做了测试程序,在测试程序中,数据为空时是正常的,但是只要迁移到项目中,就不成功,代码如下:

……
<asp:GridView ID= "GridView1 " runat= "server " cssselectorclass= "PrettyGridView " SkinID= "SampleGridView " AllowPaging= "True " AllowSorting= "True " OnRowDeleting= "GridView1_RowDeleting " OnSelectedIndexChanged= "GridView1_SelectedIndexChanged " AutoGenerateColumns= "False " DataKeyNames= "NeEngName " OnDataBound= "GridView1_DataBound " DataSourceID= "ObjectDataSource1 " PageSize= "15 "> <EmptyDataTemplate>
<table cellpadding= "0 " cellspacing= "0 " summary= " ">
<thead>
<tr> <th scope= "col "> 中文名 </th>
…… </tr>
</thead>
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText= "中文名 ">
<EditItemTemplate>
<asp:TextBox ID= "TextBox1 " runat= "server " Text= ' <%# Bind( "NeChsName ") %> '> </asp:TextBox>
</EditItemTemplate>
……
<ItemTemplate>
<asp:Label ID= "Label1 " runat= "server " Text= ' <%# Bind( "NeChsName ") %> '> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "修改 ">
<ItemTemplate>
<asp:LinkButton ID= "NeSelect " Text= "修改 " CommandName= "Select " Width= "40px " runat= "server " />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText= "删除 ">
<ItemTemplate>
<asp:LinkButton ID= "NeDelete " runat= "server " CausesValidation= "False " CommandName= "Delete " Width= "40px " Text= "删除 " OnClientClick= "return confirm( '确认要删除此行信息吗? ') "> </asp:LinkButton>


</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerTemplate>
</PagerTemplate>
</asp:GridView>
…………

C#代码如下:

……
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn( "NeChsName ", typeof(string)));
……
DataRow dr = dt.NewRow();
foreach (Ne n in arrNe)
{
dr = dt.NewRow();
dr[0] = n.NeChsName;
……
dt.Rows.Add(dr);
}
return dt;
……

[解决办法]
datatable增加的列,不要放到一起,要另外重新邦定,不然,你NewRow当然会显示出来
[解决办法]
我认为不用过多设置,数据为空时仍然绑定数据就会达到LZ的效果啊
[解决办法]
苏鹏刚讲了一课,其中就有说到没有数据时,如何显示表头.
应该正合你意.webcast上找一下吧.

[解决办法]
看不出什么问题来,你有没有写GridView1.DataBind()
[解决办法]
dingjian2008(ajax有那么热么)
===================================
说的对,我的就显示
[解决办法]
方法1:设置 <EmptyDataTemplate>
方法2:新建一个空的 DataTable ,NewRow 后绑定,如果有 非绑定列,特殊处理
[解决办法]
if(DataSet.Table[0].Rows.Count==0)
{
//隐藏修改和删除按钮
}
[解决办法]
没有就不要显示好了!最简单!
[解决办法]
介绍三个C#技术群:
C#程序员在长沙1 群号:15283069
C#程序员在长沙2 群号:8689365
C#程序员在长沙3 群号:15082848
[解决办法]
绑定

读书人网 >asp.net

热点推荐