【问题标题】:ASP.NET GridView DataBinding before Event Handlers事件处理程序之前的 ASP.NET GridView 数据绑定
【发布时间】:2012-01-19 09:00:32
【问题描述】:

我正在使用绑定到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");
    }
}

【问题讨论】:

  • 为什么还要说绑定?第一次是什么时候?
  • 第一次是在按钮处理程序触发之前,由 ASP.NET 数据绑定魔术调用(老实说,我不太了解细节,我想我会深入研究)。无论如何:我添加了一些代码,ObjectDataSource1_Selecting 方法在Unnamed2_Click 之前被命中,这是我的按钮的事件处理程序。

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


【解决方案1】:

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

【讨论】:

  • 谢谢,但显然Unnamed2Click 事件根本没有触发。
猜你喜欢
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多