Asp.net中在GridView数据绑定事件中改变显示内容要注意的问题
2008-08-29 15:30
981 查看
今天No.5说他的用Template实现的GridView在数据绑定事件中改变显示的内容后,再刷新页面时,改变的值就没了。
前台画面的片断:
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PAYMENT_CD") %>'></asp:Label>
</ItemTemplate>
数据绑定事件:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Text = "哈哈哈";
}
}
生成的html代码为:
<td>哈哈哈</td>
稍微修改了一下之后,再刷新就不会丢值了,如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label lb1 = e.Row.FindControl("Label1") as Label;
lb1.Text = "哈哈哈";
}
}
生成的html代码为:
<td><span id="GridView1_ctl02_Label1">哈哈哈</span></td>
如果把前台代码修改一下就会和以前一样变得不好用了:
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PAYMENT_CD") %' EnableViewState="False"></asp:Label>
</ItemTemplate>
总结:
可见,Label中的值之所以在页面刷新时还能保持,是因为ViewState的功能,如果单纯设置e.Row.Cells[0].Text的值,仅仅只是设置在<TD>中,而只有设置在Label上,才能保持在ViewState中,当然要让Label的EnableViewState属性为True才可以。
前台画面的片断:
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PAYMENT_CD") %>'></asp:Label>
</ItemTemplate>
数据绑定事件:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Text = "哈哈哈";
}
}
生成的html代码为:
<td>哈哈哈</td>
稍微修改了一下之后,再刷新就不会丢值了,如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label lb1 = e.Row.FindControl("Label1") as Label;
lb1.Text = "哈哈哈";
}
}
生成的html代码为:
<td><span id="GridView1_ctl02_Label1">哈哈哈</span></td>
如果把前台代码修改一下就会和以前一样变得不好用了:
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("PAYMENT_CD") %' EnableViewState="False"></asp:Label>
</ItemTemplate>
总结:
可见,Label中的值之所以在页面刷新时还能保持,是因为ViewState的功能,如果单纯设置e.Row.Cells[0].Text的值,仅仅只是设置在<TD>中,而只有设置在Label上,才能保持在ViewState中,当然要让Label的EnableViewState属性为True才可以。
相关文章推荐
- asp.net GridView 后台绑定数据无数据显示表头及没有数据一行
- 菜鸟学Asp.Net——GridView控件之RowDataBind事件中如何获取已绑定的数据
- asp.net 2.0(C#)gridview数据绑定后,通过代码能否再改变数据源呢
- asp.net GridView 判断数据绑定内容
- [Asp.Net]GridView绑定并且无数据时保持显示列头
- Asp.net Gridview绑定空数据, 如何显示标题
- asp.net customdatagrid 或gridview绑定数据的时候经常要用到的 ItemDataBound 事件的方法
- GridView是ASP.NET中功能强大的数据显示控件,它的RowDataBound事件为我们提供了方便的控制行、列数据的途径。
- ASP.NET数据控件绑定需要注意的问题
- ASP.NET——GridView控件绑定数据
- ASP GridView绑定数据为空时,显示footer和header,以实现添加
- Asp.net中解决母版页CSS样式无法在内容页完整显示——问题
- ASP.NET中,Gridview如何将源数据中的显示成回车
- ASP.NET数据绑定之GridView控件
- ASP.NET中RadioButtonList绑定后台数据后触发点击事件
- ASP.NET中RadioButtonList绑定后台数据后触发点击事件
- ASP.NET中Panel服务器控件的隐藏与显示应该注意的问题
- ASP.NET 2.0 数据控件显示空格的问题
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息