在datagrid里添加全新的参照列
class SOAbc : UFSoft.UBF.UI.Custom.ExtendedPartBase
{
StandardSOMainUIFormWebPart soWebPart;
public override void AfterInit(UFSoft.UBF.UI.IView.IPart Part, EventArgs args)
{
base.AfterInit(Part, args);
soWebPart = Part as StandardSOMainUIFormWebPart;
IUFDataGrid myGrid = (IUFDataGrid)soWebPart.FindControl("DataGrid4");
string field = "abc";
string field_Code = field + "_Code";
string field_Name = field + "_Name";
string fieldGuid = Guid.NewGuid().ToString();
CreateUIField(soWebPart.Model.SO_SOLines, field, "System.Int64");
CreateUIField(soWebPart.Model.SO_SOLines, field_Code, "System.String");
CreateUIField(soWebPart.Model.SO_SOLines, field_Name, "System.String");
IUFDataGridColumn column;
column = GridControlBuilder.GridColumnBuilder(myGrid, "abc", "ReferenceColumnModel", "", 0, soWebPart.Model.SO_SOLines.Fields[field]/*MCategory*/, field, false, true, true, false, false, false, 7, 100, "19.0", true, false, "", "", "", fieldGuid);
//绑定参照ID
GridControlBuilder.GridReferenceColumnBuilder((IUFFldReferenceColumn)column, ColumnTextAlign.Right, "Proj_ID", "Proj_Code", "Proj_Name", soWebPart.Model.SO_SOLines.Fields[field_Code]/*MCategory_Code*/, soWebPart.Model.SO_SOLines.Fields[field_Name]/*MCategory_Name*/, "2e07d219-5840-4e0b-9567-6cb2f7822392", false, true, 580, 408);
((IUFFldReferenceColumn)column).CtrlId = fieldGuid;
((IUFFldReferenceColumn)column).IsMultiOrg = false;
column.Caption = "新增列";
((IUFFldReferenceColumn)column).ApplyRefRelations();
}
private void CreateUIField(IUIView uiView, string customFieldName, string entityFullName)
{
if (uiView.Fields.Contains(customFieldName) == false)
{
// 4:Num -- 十进制数
//IUIField newfield = UIModelRuntimeFactory.CreateUIField(uiView, customFieldName, typeof(Decimal), true, "0", entityFullName, customFieldName, false, false, false);
if (entityFullName.Equals("System.String"))
{
IUIField newfield = UIModelRuntimeFactory.CreateUIField(uiView, customFieldName, typeof(String), true, "", entityFullName, customFieldName, false, false, false);
uiView.Fields.Add(newfield);
}
else if (entityFullName.Equals("System.Int64"))
{
IUIField newfield = UIModelRuntimeFactory.CreateUIField(uiView, customFieldName, typeof(Int64), true, "", entityFullName, customFieldName, false, false, true);
uiView.Fields.Add(newfield);
}
}
}
}
原来已有一个ID为"Project"的列,把它个性化隐藏后,再添加一个列,新列仍然与原列后台的model对应
IUFDataGrid myGrid = (IUFDataGrid)soWebPart.FindControl("DataGrid4");
IUFDataGridColumn column;
//ID为Project时,要选把原列隐藏,才能显示自己列
column = GridControlBuilder.GridColumnBuilder(myGrid, "Project", "ReferenceColumnModel", "", 0, soWebPart.Model.SO_SOLines.FieldProject/*MCategory*/, "Project", false, true, true, false, false, true, 7, 100, "19.0", true, false, "", "", "", "1B8E42B9-373C-4e34-B4CF-8FF24598CF3B");
//绑定参照ID
GridControlBuilder.GridReferenceColumnBuilder((IUFFldReferenceColumn)column, ColumnTextAlign.Right, "Proj_ID", "Proj_Code", "Proj_Name", soWebPart.Model.SO_SOLines.FieldProject_Code/*MCategory_Code*/, soWebPart.Model.SO_SOLines.FieldProject_Name/*MCategory_Name*/, "2e07d219-5840-4e0b-9567-6cb2f7822392", false, true, 580, 408);
((IUFFldReferenceColumn)column).CtrlId = "1B8E42B9-373C-4e34-B4CF-8FF24598CF3B";
((IUFFldReferenceColumn)column).IsMultiOrg = false;
column.Caption = "色 号";
((IUFFldReferenceColumn)column).ApplyRefRelations();