设置状态按钮的水印
参考:【003】U9状态按钮水印效果
列表跳转
private void BtnList_Click_Extend(object sender, EventArgs e)
{
this.Action.CurrentPart.NavigatePage("列表的URL", null);
}
开启个性化
public void AfterCreateChildControls()
{
UFIDA.U9.UI.PDHelper.PersonalizationHelper.SetPersonalizationEnable(this, true);
}
查找代码
private void BtnFind_Click_Extend(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(wpFindID.Value))
this.Action.NavigateAction.MovePageAt(null, long.Parse(wpFindID.Value));
}
public void AfterCreateChildControls()
{
PDFormMessage.ShowConfirmDialog(this.Page, "d6553293-1bfa-4443-9920-630fba59a428", Title, wpFindID.ClientID, this.BtnFind);
}
移除选中行
private void RemoveSelectLine()
{
var selectRecords = this.Model.MainView.SelectRecords;
if (selectRecords?.Count > 0)
{
foreach (var item in selectRecords)
{
if (item.PrimaryKey > 0)
item.DataRecordState = DataRowState.Deleted;
else
this.Model.MainView.Records.Remove(item);
}
}
}
公共方法
public class CommonVoid
{
public static decimal ConvertToDecimal(object o)
{
decimal v;
decimal.TryParse(o?.ToString(), out v);
return v;
}
public static long ConvertToInt64(object o)
{
long v;
long.TryParse(o?.ToString(), out v);
return v;
}
public static int ConvertToInt32(object o)
{
int v;
int.TryParse(o?.ToString(), out v);
return v;
}
public static DateTime? ConvertToDateTime(object o)
{
if (o == null) return null;
DateTime v;
if (DateTime.TryParse(o?.ToString(), out v) == false) return null;
return v;
}
public static string ConvertToString(object o)
{
return o?.ToString();
}
/// <summary>
/// 按钮启用/禁用
/// </summary>
/// <param name="enabled">true 启用,false 禁用</param>
/// <param name="btns"></param>
public static void UFButtonEnabled(bool enabled, params IUFButton[] btns)
{
foreach (var btn in btns)
{
btn.Enabled = enabled;
}
}
/// <summary>
/// 控件只读/可编辑
/// </summary>
/// <param name="readOnly">true 只读,fasel 可编辑</param>
/// <param name="controls"></param>
public static void ControlReadOnly(bool readOnly, params IUFControl[] controls)
{
foreach (IUFControl control in controls)
{
(control as IUIFieldBindingDataBindControl).ReadOnly = readOnly;
}
}
public static void ShowAlertMessage(IPart part, string theMessage)
{
BaseWebForm webPart = part as BaseWebForm;
if (webPart == null) return;
string alertScript = GetAlertScript(theMessage);
AtlasHelper.RegisterAtlasStartupScript(webPart.Page, webPart.Page.GetType(), Guid.NewGuid().ToString(), alertScript, false);
}
private static string GetAlertScript(string theMessage)
{
theMessage = ReplaceLawlessCharForShowAlertScript(theMessage);
return ("<script language=\"javascript\">\n alert('" + theMessage + "'); </script>\n");
}
private static string ReplaceLawlessCharForShowAlertScript(string message)
{
message = message.Replace(@"\r", "\r");
message = message.Replace(@"\n", "\n");
message = message.Replace("\r", @"\r");
message = message.Replace("\n", @"\n");
return message;
}
public static void ShowConfirmMessage(IPart part, string theMessage)
{
BaseWebForm webPart = part as BaseWebForm;
if (webPart == null) return;
string ConfirmScript = GetConfirmScript(theMessage);
AtlasHelper.RegisterAtlasStartupScript(webPart.Page, webPart.Page.GetType(), Guid.NewGuid().ToString(), ConfirmScript, false);
}
private static string GetConfirmScript(string theMessage)
{
theMessage = ReplaceLawlessCharForShowAlertScript(theMessage);
return ("<script language=\"javascript\">\n Confirm('" + theMessage + "'); </script>\n");
}
/// <summary>
/// 设置控件在卡片容器中的布局
/// </summary>
/// <param name="container">卡片容器</param>
/// <param name="ctrl">增加的控件</param>
/// <param name="x">布局横坐标</param>
/// <param name="y">布局纵坐标</param>
public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, IUFControl ctrl, uint x, uint y)
{
Layout(container, ctrl, x, y, 1, 1, Unit.Pixel(0), Unit.Pixel(0), true);
}
/// <summary>
/// 设置控件在卡片容器中的布局
/// </summary>
/// <param name="container">卡片容器</param>
/// <param name="ctrl">增加的控件</param>
/// <param name="x">布局横坐标</param>
/// <param name="y">布局纵坐标</param>
/// <param name="width">控件宽</param>
/// <param name="height">控件高</param>
public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, IUFControl ctrl, uint x, uint y, int width, int height)
{
Layout(container, ctrl, x, y, 1, 1, Unit.Pixel(width), Unit.Pixel(height), false);
}
/// <summary>
/// 设置控件在卡片容器中的布局
/// </summary>
/// <param name="container">卡片容器</param>
/// <param name="ctrl">增加的控件</param>
/// <param name="x">布局横坐标</param>
/// <param name="y">布局纵坐标</param>
/// <param name="xspan">单元格横向跨度</param>
/// <param name="yspan">单元格纵向跨度</param>
/// <param name="width">控件宽</param>
/// <param name="height">控件高</param>
/// <param name="isAutoSize">是否自适应大小</param>
public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, IUFControl ctrl, uint x, uint y, int xspan, int yspan,
Unit width, Unit height, bool isAutoSize)
{
IGridLayout gl = container.Layout as IGridLayout;
if (gl == null) return;
GridLayoutInfo glInfo = new GridLayoutInfo(x, y, (uint)xspan, (uint)yspan, width, height);
glInfo.AutoSize = isAutoSize;
gl.Controls.Add((Control)ctrl, glInfo);
}
/// <summary>
/// 在父容器中查找控件
/// </summary>
/// <param name="parentControl">父容器</param>
/// <param name="control">控件</param>
/// <returns>找到的控件</returns>
public static IUFControl FindControl(IPart part, string parentControl, string control)
{
IUFCard card = (IUFCard)part.GetUFControlByName(part.TopLevelContainer, parentControl);
if (card == null)
return null;
foreach (IUFControl ctrl in card.Controls)
{
if (ctrl.ID.Equals(control, StringComparison.OrdinalIgnoreCase))
{
return ctrl;
}
}
return null;
}
/// <summary>
/// 生成控件回调按钮
/// </summary>
/// <param name="card">按钮所在的Card</param>
/// <param name="id">按钮ID</param>
/// <param name="clickEvent">按钮回调事件</param>
public static void LayoutCallBack(IUFCard card, string id, Action<object, EventArgs> clickEvent)
{
IUFButton callback = new UFWebButtonAdapter { ID = id, Visible = false };
card.Controls.Add(callback);
Layout(card, callback, 0, 0);
callback.Click += new EventHandler(clickEvent);
}
/// <summary>
/// 查找回调控件按钮
/// </summary>
/// <param name="card">按钮所在的Card</param>
/// <param name="id">按钮ID</param>
/// <returns></returns>
public static IUFButton GetCallBackBtn(IUFCard card, string id)
{
var ctrls = card.Controls as UFControlCollection;
// 从后往前找,因为Controls.Add会添加到最后面
for (int i = ctrls.Count - 1; i >= 0; i--)
{
if (ctrls[i].ID == id) return ctrls[i] as IUFButton;
}
return null;
}
}
打开弹窗
private void BtnXXX_Click_Extend(object sender, EventArgs e)
{
// 直接打开弹窗
this.ShowModalDialog("ac3322bd-b74e-409a-a687-a0d5697dd214", "窗体标题", "610", "130", null, null, true);
// 弹窗窗体并在关闭弹窗时进入回调
IUFButton btnCall = CommonVoid.GetCallBackBtn(Card0, "BtnCallBack");
this.ShowAtlasModalDialog(btnCall, "ac3322bd-b74e-409a-a687-a0d5697dd214", "窗体标题", "472", "160", "", null, true, false, false);
}
public void AfterCreateChildControls()
{
// 创建回调弹窗
CommonVoid.LayoutCallBack(Card0, "BtnCallBack", BtnCallBack);
}
// 弹窗回调函数
private void PullOrderWindowCallBack(object sender, EventArgs e)
{
// 处理弹窗返回的数据
if (this.CurrentSessionState["XXX"] != null && base.CurrentSessionState["XXX"] is XXXXXX)
{
XXXXXX res = (XXXXXX)base.CurrentSessionState["XXX"];
// 处理res的代码......
this.CurrentSessionState["XXX"] = null;
}
// 清除一些关闭弹窗就要清空的CurrentSessionState,右上角关闭按钮也会触发回调
this.CurrentSessionState["XXXData1"] = null;
this.CurrentSessionState["XXXData2"] = null;
}
初始化列表的行号
private void AfterCreateChildControls()
{
// 设置默认行号
GetProfileValueProxy bpObj = new GetProfileValueProxy();
bpObj.ProfileCode = "SysLineNo";
PVDTOData pVDTOData = bpObj.Do();
//行GRID
IAutoRowNo rowNo = this.DataGrid6.Columns["DocLineNo"] as IAutoRowNo;
if (rowNo != null)
{
rowNo.Sequence = true;
rowNo.SequenceStep = Convert.ToInt32(pVDTOData.ProfileValue);
rowNo.SequenceStart = Convert.ToInt32(pVDTOData.ProfileValue);
}
}
个性化提示
private void AfterCreateChildControls()
{
PDFormMessage.ShowDelConfirmDialog(this.Page, PDResource.DeleteConfirmInfo, Title, this.BtnDelete);
//PDFormMessage.ShowConfirmDialog(this.Page, "是否审核!", "审核提示", this.BtnApprove);
PDFormMessage.ShowConfirmDialog(this.Page, "是否弃审!", "弃审提示", this.BtnUndoApprove);
}
注册扩展字段
private void AfterCreateChildControls()
{
//扩展字段 --单头实体扩展字段
FlexFieldHelper.SetDescFlexField(this.FlexFieldPicker0, this.Model.MainView);
//扩展字段 --单行实体扩展字段
FlexFieldHelper.SetDescFlexField(this.DataGrid6, this.DataGrid6.Columns.Count - 1);
}
CallBack事件注册
参考:【028】CallBack事件注册
PostBack事件注册
参考:【029】PostBack事件注册
评论区