关于Session的疑问

Rehope 2009-03-12 12:17:29
请高手们帮我回答下下面的问题:


我在Page_Load里把数据视图放到DataView中:

DataView detailsView = new DataView(ds.Tables["Order Details"]);
this.GridView2.DataSource = detailsView;
this.GridView2.DataBind();

想改变视图内容时:

((DataView)Session["DetailsView"]).RowFilter = "OrderID=" + (int)key.Value;
this.GridView2.DataBind();

却不能改变数据视图状态的内容,只能在DataBind()调用前再加一句

GridView2.DataSource = (DataView)Session["DetailsView"];

才能让数据视图状态内容改变,感觉很奇怪,DataView是引用类型阿,把它的属性改变应该GridView2里的视图也会变化才对,为一定要再绑定一次才生效呢?困惑……
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2009-03-12
  • 打赏
  • 举报
回复
Session["DetailsView"]=ds.Tables["Order Details"]);
this.GridView2.DataSource =(DataView)Session["DetailsView"];
this.GridView2.DataBind();

sxu_nono 2009-03-12
  • 打赏
  • 举报
回复
GridView2.DataSource = (DataView)Session["DetailsView"];
这一句断点跟一下,我估计这时候DataView生命周期结束了,被回收了。
ZZJ_4Ever 2009-03-12
  • 打赏
  • 举报
回复
要这样改变数据控件的内容只有重新绑定才有效
junlintianxia07 2009-03-12
  • 打赏
  • 举报
回复
因为 比尔盖茨的兄弟们 这样规定的吧
Rehope 2009-03-12
  • 打赏
  • 举报
回复
回楼上,我知道这样可以阿,我只是想知道为什么一定要这样呢?

62,268

社区成员

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

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

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

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