在编辑模型中移动到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);
}
我不知道为什么,有人可以帮我吗?