ASP.NET:DataGrid中的OnLoad事件问题

时间:2013-12-16 15:52:43

标签: c# asp.net datagrid webforms onload-event

在编辑模型中移动到DataGrid中的下一页时,我将丢失修改后的数据, 然后我发现如果我在Onload事件中绑定数据,我不会丢失修改后的数据。

换句话说,由于某些原因,我无法添加一些事件来绑定数据。

所以我在Onload事件中绑定数据源如下:

protected override void OnLoad(EventArgs e)
    {  
     if (Page.IsPostBack){
       if (_grid != null && _grid.DataSet.CurrentTable != null && _grid.EditMode == EditModeValues.Edit)
            {
                DataGrid.DataBindList();
                DataGrid.DataSet.CurrentTable.AcceptChanges();

             }
        }
    }

和DataBindList核心代码:

    public int DataBindList()
    {
        var count = 0;
        if (_dataSet.CurrentTable != null)
        {
            DataSource = _dv;
            DataBind();
            count = _dv.Count;
        }
        else
        {
            _dv = null;
            DataSource = null;
            DataBind();
        }
        return count;
    }

但是在我DataBind数据之后,我发现事件OnBubbleEvent(对象源,EventArgs args)无法触发,如果我没有绑定数据,可以触发OnBubbleEvent,

我需要使用OnBubbleEvent在DataGrid中添加一个新项目,以及我的OnBubbleEvent代码:

        protected override bool OnBubbleEvent(object source, EventArgs args)
    {
        DataGridCommandEventArgs dgCmd = args as DataGridCommandEventArgs;

        if (dgCmd != null)
        {
            switch (dgCmd.CommandName)
            {
                case "Add":
                    AddLineItem(dgCmd.Item);
                    return true;
            }
        }

        return base.OnBubbleEvent(source, args);
    }

我不知道为什么,有人可以帮我吗?

0 个答案:

没有答案