事件处理程序之前的ASP.NET GridView DataBinding

时间:2011-12-13 13:28:05

标签: c# asp.net data-binding gridview objectdatasource

我正在使用绑定到ObjectDataSource的网格。在此网格中,有一列包含DropDownListAutoPostBacktrue)和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");
    }
}

1 个答案:

答案 0 :(得分:0)

您应该在页面的OnLoadComplete事件中显式设置数据源并数据绑定网格。