修改列表中的数据后,翻页如何保留已修改的数据?

by RainBirda 2015.7.14 10:30
现在知道的有两种方案: 1、每次翻页时将触发callback事件,将当前页的数据存到缓存中,每次翻页后从缓存中取出修改后的数据赋值到列表中,不过这种实现方式比较复杂,不利于维护; 2、还有一种就是每次修改列表中的数据时触发postback事件,在服务端进行一次数据收集,这种实现方式较简单,不过修改数据后页面有刷新的动作,反应慢一些。 我想应该有其他更好的方式,以上两种都有缺点,还请大家指点一下。 第二种方式实现方法: /// <summary> /// 在AfterCreateChildControls中注册转订单数量及存储地点改变时postback事件 /// </summary> private void OnToTransOutQtyChanged_PostBack() {     AssociationControl assoCtrl = new AssociationControl();     assoCtrl.SourceServerControl = this.DataGrid1;     assoCtrl.SourceControl.EventName = "OnCellDataChanged";     IUFClientAssoGrid assGrid = (IUFClientAssoGrid)assoCtrl.SourceControl;     assGrid.FireEventCols.Add("ToTransOutQtyTU");     assGrid.FireEventCols.Add("ToTransOutQtyTBU");     assGrid.FireEventCols.Add("TransOutWh");     assGrid.FireEventCols.Add("TransInWh");     assGrid.FireEventCols.Add("TransOutBusDate");       CodeBlock cb = new CodeBlock();     UFWebClientGridAdapter gridAdapter = new UFWebClientGridAdapter(this.DataGrid1);     gridAdapter.IsPostBack = true;     gridAdapter.PostBackTag = this.DataGrid1.ID + "_" + assoCtrl.SourceControl.EventName;     cb.TargetControls.addControl(gridAdapter);     assoCtrl.addBlock(cb);       UFGrid gird = this.DataGrid1 as UFGrid;     GridCustomerPostBackDelegate actionDelegate =         new GridCustomerPostBackDelegate(ToTransOutQtyChanged_CustomerPostBackAction);     gird.GridCustomerPostBackEvent += actionDelegate; }   /// <summary> ///  触发转订单数量及存储地点改变时触发postback方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ToTransOutQtyChanged_CustomerPostBackAction(object sender, GridCustomerPostBackEventArgs e) {     if (e.PostTag.ToString().EndsWith("OnCellDataChanged"))     {         this.OnDataCollect(this); //当前事件先执行数据收集         this.IsDataBinding = true; //当前事件执行后会进行数据绑定         this.IsConsuming = false;     } }

RecentComments

评论 RSS

部件 Statistics 未找到.

索引超出了数组界限。X