UI插件 GridCellValueChanged
public override void AfterInit(IPart Part, EventArgs args) { base.AfterInit(Part, args); _part = Part as UFIDA.U9.SCM.SM.SOUIModel.StandardSOMainUIFormWebPart; if (Part == null) return; //RegisterGridCellDataChangedCallBack(); //DataChangedCallBack(); CustoemrDataGridCellValueChangedPostback(); }
private void CustoemrDataGridCellValueChangedPostback() { UFWebDataGridAdapter dgLine = (UFWebDataGridAdapter)((System.Web.UI.Control)_part).FindControl("DataGrid4"); //公式设置事件 AssociationControl assocControl = new AssociationControl(); assocControl.SourceServerControl = dgLine; assocControl.SourceControl.EventName = "OnCellDataValueChanged"; ((IUFClientAssoGrid)assocControl.SourceControl).FireEventCols.Add("ItemInfo_ItemID"); CodeBlock cb = new CodeBlock(); UFWebClientGridAdapter gridAdapter = new UFWebClientGridAdapter(dgLine); gridAdapter.IsPostBack = true; gridAdapter.PostBackTag = "OnCellDataValueChanged"; cb.TargetControls.addControl(gridAdapter); assocControl.addBlock(cb); UFGrid itemGrid = dgLine as UFGrid; itemGrid.GridCustomerPostBackEvent += new GridCustomerPostBackDelegate(CustomerOnChanged_DoCustomerAction_Grid); }
private void CustomerOnChanged_DoCustomerAction_Grid(object sender, GridCustomerPostBackEventArgs e) { this._part.Model.ClearErrorMessage(); if (e.SrcColumnName == "ItemInfo_ItemID") { if (this._part.Model.Views["SO_SOLines"].FocusedRecord != null) { string fieldNameByIndex = GetFieldNameByIndex((IUFDataGrid)sender, e.ColIndex); try { _part.IsDataBinding = true; _part.IsConsuming = true; _part.DataCollect();//数据收集 _part.DataBinding();//数据绑定 using (BPForEngine bp = new BPForEngine()) { foreach (SO_SOLinesRecord rcd in _part.Model.SO_SOLines.Records) { ItemMaster itemMaster = ItemMaster.Finder.FindByID(rcd.ItemInfo_ItemID); if (itemMaster != null) rcd.DescFlexField_PubDescSeg8 = itemMaster.DescFlexField.PubDescSeg7; } } } catch (Exception ex) { _part.Model.ErrorMessage.Message = ex.ToString(); } } } } public static string GetFieldNameByIndex(IUFDataGrid dataGrid, int index) { return dataGrid.Columns[index].UIFieldID.Trim(); }
private void DataChangedCallBack() { IUFDataGrid iufdataGrid = (UFWebDataGridAdapter)_part.FindControl("DataGrid4"); AssociationControl gridCellDataChangedASC = new AssociationControl(); //基本固定代码 gridCellDataChangedASC.SourceServerControl = iufdataGrid; gridCellDataChangedASC.SourceControl.EventName = "OnCellDataValueChanged";//注册行的单元格改变事件 //CallBack处理方案 ((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("ItemInfo_ItemID");//触发源,Item为触发控件名称 ClientCallBackFrm gridCellDataChangedCBF = new ClientCallBackFrm(); gridCellDataChangedCBF.ParameterControls.Add(iufdataGrid); gridCellDataChangedCBF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(gridCellDataChangedCBF_DoCustomerActionOfSubvillage); gridCellDataChangedCBF.Add(gridCellDataChangedASC); _part.Controls.Add(gridCellDataChangedCBF); } /// <summary> /// 表格的CallBack处理方式 /// </summary> /// <param name="args"></param> /// <returns></returns> private object gridCellDataChangedCBF_DoCustomerActionOfSubvillage(CustomerActionEventArgs args) { IUFDataGrid dataGrid = (IUFDataGrid)_part.GetUFControlByName(_part.TopLevelContainer, "DataGrid4"); UFWebClientGridAdapter grid = new UFWebClientGridAdapter(dataGrid);//行的DataGrid控件 //取表格数据(当前行) ArrayList list = (ArrayList)args.ArgsHash[UFWebClientGridAdapter.ALL_GRIDDATA_SelectedRows]; //基本固定代码 int curIndex = int.Parse(list[0].ToString()); Hashtable table = (Hashtable)((ArrayList)args.ArgsHash[grid.ClientID])[curIndex]; long ItemID = long.Parse(table["ItemInfo_ItemID"].ToString());//获取触发源字段值 if (ItemID > 0) { string PubDescSeg8 = "12"; grid.CellValue.Add(new object[] { curIndex, "OrderByQtyTU", new string[] { PubDescSeg8, PubDescSeg8, PubDescSeg8 } });//UnitPrice为要更新的字段名称,如果要更新多个字段值,需要些多个Add。后面三个参数,如果为参照的话分别对应ID,Code,Name args.ArgsResult.Add(grid.ClientInstanceWithValue);//DescFlexField_PubDescSeg8 } return args; }

浙公网安备 33010602011771号