GRIDVIEW问题,页面刷新后,本来隐藏的控件又冒出来了

sunchf 2009-06-17 03:00:28
html:

<Columns>
<asp:BoundField DataField="OfficeName" HeaderText="Offices">
<ItemStyle BorderWidth="1px" Font-Size="11px" Height="12px" HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="ProductName" HeaderText="Products">
<ItemStyle BorderWidth="1px" Font-Size="11px" Height="12px" HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:ImageButton ID="ibtnDelete" runat="server" CommandArgument="<%# GridView1.Rows.Count %>" OnCommand="ibtnDelete_Command" ImageUrl="~/images/Delete.gif" />
</ItemTemplate>
<ItemStyle BorderWidth="1px" Height="12px" HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>


c# code:
       public static void GridViewDataBind(GridView gridview, DataTable table)
{

//记录为空重新构造Gridview

if (table.Rows.Count == 0)
{

table = table.Clone();

table.Rows.Add(table.NewRow());

gridview.DataSource = table;

gridview.DataBind();

int columnCount = table.Columns.Count;

gridview.Rows[0].Cells.Clear();

gridview.Rows[0].Cells.Add(new TableCell());

gridview.Rows[0].Cells[0].ColumnSpan = columnCount;

gridview.Rows[0].Cells[0].Text = "No Result";

gridview.Rows[0].Cells[0].Style.Add("text-align", "center");

}

else
{

gridview.DataSource = table;

gridview.DataBind();

}

//重新绑定取消选择

gridview.SelectedIndex = -1;
}

我在首次进入页面时,调用该函数,因为刚进入页面时还没有数据绑定到GridView中,所以我在GridView中显示“No Result”.
当我首次进入页面时。显示No Result。页面显示正常。 但是页面还有一个DropDownList。AutoBack为True为级联操作的。
当我更改DropDownList选择的内容时由于AutoBack为True所以页面刷新了。 但是刷新后GridView就变了,本来隐藏的删除按钮也出现了,请大家帮忙分析下原因。。
...全文
77 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
路人乙e 2009-06-18
  • 打赏
  • 举报
回复
检查你的page_load事件中的代码
syjwbl 2009-06-18
  • 打赏
  • 举报
回复
if(!ispostback)
{
数据绑定
}
whzhong1 2009-06-18
  • 打赏
  • 举报
回复
if(!ispostback)
{}
+
重新绑定
屌丝女士111 2009-06-18
  • 打赏
  • 举报
回复
if(!ispostback)
{}
feifeiyiwen 2009-06-18
  • 打赏
  • 举报
回复
ding
zhangxue841123 2009-06-17
  • 打赏
  • 举报
回复
向多了啊
txg92 2009-06-17
  • 打赏
  • 举报
回复
gridview没有数据的时候可以用空模版啊,直接在那里打上No Result! 即可,楼主为什么要重新构造Gridview呢,即时你那样弄,之后也得重新绑定一下吧,楼主把简单问题复杂化了
nosuchtracter 2009-06-17
  • 打赏
  • 举报
回复
要重新给table赋值,给gridview重新绑定
wjq 2009-06-17
  • 打赏
  • 举报
回复
1:没数据的时候,请用EmptyDataText和EmptyDataRowStyle来显示No Result!
2: 你额外手工操作gridview的Row和Cell应该是导致问题的原因。根据1的来设置,把绑定函数改为
gridview.DataSource = table;

gridview.DataBind();
即可。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧