public void AfterCreateChildControls()
{
//开启个性化
UFIDA.U9.UI.PDHelper.PersonalizationHelper.SetPersonalizationEnable((BaseWebForm)this, true);
AllotQtyChangedCallBack();
}
注册事件
///<summary>
/// 注册表格单元格内容改变的回调事件
///</summary>
private void AllotQtyChangedCallBack()
{
AssociationControl gridCellDataChangedASC = new AssociationControl(); //基本固定代码
gridCellDataChangedASC.SourceServerControl = this.DataGrid5;
gridCellDataChangedASC.SourceControl.EventName = "OnCellDataChanged";
//CallBack处理方案
((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("currentQty");
//((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("Qty");
//((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("Price");
//((IUFClientAssoGrid)gridCellDataChangedASC.SourceControl).FireEventCols.Add("TaxRate");
ClientCallBackFrm gridCellDataChangedCBF = new ClientCallBackFrm();
gridCellDataChangedCBF.ParameterControls.Add(this.DataGrid5);
gridCellDataChangedCBF.DoCustomerAction += new ClientCallBackFrm.ActionCustomer(AllotQtyChange);
gridCellDataChangedCBF.Add(gridCellDataChangedASC);
this.Controls.Add(gridCellDataChangedCBF);
}
///<summary>
/// 表格的CallBack处理方式,返回结果
///</summary>
///<param name="args"></param>
///<returns></returns>
private object AllotQtyChange(CustomerActionEventArgs args)
{
this.Model.MOProductionTask.ClearErrorMessage();
UFWebClientGridAdapter grid = new UFWebClientGridAdapter(this.DataGrid5);
//取表格数据(当前行)
ArrayList list = (ArrayList)args.ArgsHash[UFWebClientGridAdapter.ALL_GRIDDATA_SelectedRows]; //基本固定代码
int curIndex = int.Parse(list[0].ToString());
Hashtable table = (Hashtable)((ArrayList)args.ArgsHash[this.DataGrid5.ClientID])[curIndex];
decimal Qty = decimal.Parse(table["Qty"].ToString());
decimal TotalCompleteQty = decimal.Parse(table["TotalCompleteQty"].ToString());
decimal TotalOutQty = decimal.Parse(table["TotalOutQty"].ToString());
decimal ExceedableQty = decimal.Parse(table["ExceedableQty"].ToString());
decimal currentQty = decimal.Parse(table["currentQty"].ToString());
if (Qty - TotalCompleteQty - TotalOutQty + ExceedableQty < currentQty)
{
base.ErrorControl.AddUFErrorInfo(base.TopLevelContainer, $"本次生成数量不能超过!");
decimal Money = Qty - TotalCompleteQty - TotalOutQty;
//金额
grid.CellValue.Add(new object[] { curIndex, "currentQty", new string[] { Money.ToString(), Money.ToString(), Money.ToString() } });
args.ArgsResult.Add(grid.ClientInstanceWithValue);
}
return args;
}