ASP .Net Gridview rowupdated - 可以在页面加载之前发生吗?

时间:2009-12-04 16:41:43

标签: asp.net gridview pageload

以下是该方案: - 网格控制 - 日历控制

我只希望日历显示是否在网格视图的下拉列表中选择了特定项目。更新网格视图行时,我想更改日历是否可见。日历的可见性仅在下一篇文章中正确显示。

2 个答案:

答案 0 :(得分:0)

在Render之前调用的事件之前调用Page_Load。在您的事件中,没有理由不检查下拉列表的值并设置Calendar控件的可见属性,这将导致渲染。

答案 1 :(得分:0)

在设置加载GridView之前,尝试添加IsPostBack检查。这将阻止你覆盖它的价值。

protected void Page_Load(object sender, EventArgs e) {
    if(!IsPostBack) {
         /*Populate your GridView*/
    }
}

protected void GridView_RowUpdated(object sender, GridViewUpdatedEventArgs e) 
{
    /*show your calendar here if you need to*/
    if(whatever) calendar.Visible = true;
}

这应该可行,如果没有,那么我建议在你的Page_Load和RowUpdated方法中加入断点并单步执行它,最好是在gridview的数据源上使用Watch(如果它被更改,它将变为红色)和在日历上观看。可见,帮助您查看是否有变化。

对于记录,除非由于某种原因显式调用,否则OnRowUpdated之类的控制事件将永远不会在Page_Load之前触发。有可能你只是做了一些事情,它没有在GridView内容更新之前更新GridView的内容,或者由于缺少!IsPostBack检查而覆盖了GridView中的数据。