ASP.. NET GridView数据绑定在事件处理程序之前

本文关键字:程序 事件处理 NET GridView 数据绑定 ASP | 更新日期: 2023-09-27 18:17:47

我正在使用绑定到ObjectDataSource的网格。在这个网格中,有一列是DropDownList (AutoPostBacktrue)和Rating。这些控件应该使用户能够立即修改数据

RowCommand(编辑:在ButtonField中)不同,控件的处理程序(分别为SelectedIndexChangedRatingChanged)在数据绑定后触发。因此,我要么没有最新的数据,要么必须通过调用DataBind再次绑定。这两个都不酷。控件不支持行命令。

解决这个问题最好的办法是什么?我是否得到了一些错误的概念,或处理错误的事件?

这里有一些代码:

public partial class _Default : System.Web.UI.Page
{
    protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
    {
        e.ObjectInstance = new MyDataSource();
    }
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        // before selecting with ButtonField
        // after selecting with TemplateField + Control Event
        Debug.WriteLine("Command Handler");
    }
    protected void Unnamed2_Click(object sender, EventArgs e)
    {
        // Button event handler, after selecting
        Debug.WriteLine("Button Click Handler");
    }
    protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
    {
        // Selecting invoked by ASP.NET data binding
        Debug.WriteLine("Selecting");
    }
}

ASP.. NET GridView数据绑定在事件处理程序之前

你应该在页面的OnLoadComplete事件中明确地设置数据源和绑定网格。