日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

插件开发-UI插件开发

發(fā)布時(shí)間:2023/12/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 插件开发-UI插件开发 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.新建類庫解決方案,引入命名空間,同時(shí)引入要添加UI Form的WebPart(在Portal\UILib目錄下)


2.繼續(xù)UFSoft.UBF.UI.Custom.ExtendedPartBase,重寫AfterInit()方法,代碼如下,便于添加下拉列表按鈕,在原單據(jù)中UI先新增一下拉按鈕;添加按鈕綁定的父控件,如本例中的下拉列表控件,可以UBF設(shè)計(jì)工具中的控件名屬性ID來查找,本例中綁定的下拉列表按鈕:DropDownButton2,若是系統(tǒng)標(biāo)準(zhǔn)的單據(jù),建議查看系統(tǒng)的源碼生成的ID相匹配

using System; using System.Collections.Generic; using System.Linq; using System.Text; using UFSoft.UBF.UI.ControlModel; using UFSoft.UBF.UI.Engine.Builder; using UFSoft.UBF.UI.MD.Runtime.Common; using UFSoft.UBF.UI.WebControlAdapter; using UFSoft.UBF.UI.WebControls;namespace GiftDocUIPlug {class GiftDocUIPlugExtend : UFSoft.UBF.UI.Custom.ExtendedPartBase{private Homa.test.ch01.GifDocUIModel.GiftDocUIFormWebPart webPart;public override void AfterInit(UFSoft.UBF.UI.IView.IPart Part, EventArgs args){base.AfterInit(Part, args);if (Part == null || Part.Model == null){return;}webPart = Part as Homa.test.ch01.GifDocUIModel.GiftDocUIFormWebPart;if (webPart == null){return;}//功能區(qū)添加按鈕//(1)實(shí)例化按鈕IUFButton btnExportXLS = new UFWebButtonAdapter();btnExportXLS.Text = "導(dǎo)出XLS";btnExportXLS.ID = "btnExportXLS";btnExportXLS.AutoPostBack = true;//(2)加入功能欄Card中IUFCard card = (IUFCard)Part.GetUFControlByName(Part.TopLevelContainer, "Card0");card.Controls.Add(btnExportXLS);//(3)設(shè)置按鈕在容器中的位置CommonHelper.Layout(card, btnExportXLS, 0, 0);//一般為從左往右按鈕個(gè)數(shù)乘以2//(4)綁定按鈕事件btnExportXLS.Click += new EventHandler(btnExportXLS_Click);//功能區(qū)下拉列表添加按鈕//(1)實(shí)例化下拉按鈕IUFMenu MenuPrintBatch = new UFWebMenuAdapter();MenuPrintBatch.ID = "btnDdlExportXLS";MenuPrintBatch.Text = "導(dǎo)出XLS";MenuPrintBatch.AutoPostBack = true;//(2)找到功能區(qū)對(duì)應(yīng)的下拉列表按鈕組IUFDropDownButton BtnOpreator = (IUFDropDownButton)webPart.GetUFControlByName(Part.TopLevelContainer, "DropDownButton2");//(3)將下拉按鈕添加到對(duì)應(yīng)的組MenuPrintBatch.ItemClick += new MenuItemHandle(btnExportXLS_Click);//(4)綁定按鈕事件 BtnOpreator.MenuItems.Add(MenuPrintBatch);//在工具欄上添加按鈕//(1)實(shí)例化按鈕IUFButton btnBatchMO = new UFWebButtonAdapter();btnBatchMO.ID = "btnBatchMO";btnBatchMO.AutoPostBack = true;//(2)找到工具欄控件IUFToolbar _Toolbar = (IUFToolbar)webPart.FindControl("Toolbar2");//(3)將按鈕添加到工具欄btnBatchMO = UIControlBuilder.BuilderToolbarButton(_Toolbar, "True", "btnBatchMO", "True", "True", 45, 28, "19", "", true, false, "36BA88E0-FC28-402e-B9BA-3745A6771687", "36BA88E0-FC28-402e-B9BA-3745A6771687", "9307E981-85AA-4f19-ADB7-340D159F4A01");UIControlBuilder.SetButtonAccessKey(btnBatchMO);btnBatchMO.UIModel = Part.Model.ElementID;btnBatchMO.Action = "";btnBatchMO.Text = "導(dǎo)出XLS";((UFWebToolbarAdapter)_Toolbar).Items.Add(btnBatchMO as System.Web.UI.WebControls.WebControl);//(4)綁定按鈕事件btnBatchMO.Click += new EventHandler(btnExportXLS_Click);}private void btnExportXLS_Click(object sender, EventArgs e){webPart.Model.ErrorMessage.Message = "你點(diǎn)擊了UI插件按鈕!";}} } 插件代碼 using System; using System.Collections.Generic; using System.Linq; using System.Text; using UFSoft.UBF.UI.ControlModel;namespace GiftDocUIPlug {class CommonHelper{/// <summary>/// 設(shè)置控件在卡片容器中的布局/// </summary>/// <param name="container">卡片容器</param>/// <param name="ctrl">增加的控件</param>/// <param name="x">布局橫坐標(biāo)</param>/// <param name="y">布局縱坐標(biāo)</param>public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, UFSoft.UBF.UI.ControlModel.IUFControl ctrl, uint x, uint y){Layout(container, ctrl, x, y, 1, 1, System.Web.UI.WebControls.Unit.Pixel(0), System.Web.UI.WebControls.Unit.Pixel(0), true);}/// <summary>/// 設(shè)置控件在卡片容器中的布局/// </summary>/// <param name="container">卡片容器</param>/// <param name="ctrl">增加的控件</param>/// <param name="x">布局橫坐標(biāo)</param>/// <param name="y">布局縱坐標(biāo)</param>/// <param name="width">控件寬</param>/// <param name="height">控件高</param>public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, UFSoft.UBF.UI.ControlModel.IUFControl ctrl, uint x, uint y, int width, int height){Layout(container, ctrl, x, y, 1, 1, System.Web.UI.WebControls.Unit.Pixel(width), System.Web.UI.WebControls.Unit.Pixel(height), false);}/// <summary>/// 設(shè)置控件在卡片容器中的布局/// </summary>/// <param name="container">卡片容器</param>/// <param name="ctrl">增加的控件</param>/// <param name="x">布局橫坐標(biāo)</param>/// <param name="y">布局縱坐標(biāo)</param>/// <param name="xspan">單元格橫向跨度</param>/// <param name="yspan">單元格縱向跨度</param>/// <param name="width">控件寬</param>/// <param name="height">控件高</param>/// <param name="isAutoSize">是否自適應(yīng)大小</param>public static void Layout(UFSoft.UBF.UI.ControlModel.IContainer container, UFSoft.UBF.UI.ControlModel.IUFControl ctrl, uint x, uint y, int xspan, int yspan,System.Web.UI.WebControls.Unit width, System.Web.UI.WebControls.Unit height, bool isAutoSize){UFSoft.UBF.UI.Controls.IGridLayout gl = container.Layout as UFSoft.UBF.UI.Controls.IGridLayout;if (gl == null) return;UFSoft.UBF.UI.WebControls.GridLayoutInfo glInfo = new UFSoft.UBF.UI.WebControls.GridLayoutInfo((uint)x, (uint)y, (uint)xspan, (uint)yspan, width, height);glInfo.AutoSize = isAutoSize;gl.Controls.Add((System.Web.UI.Control)ctrl, glInfo);}public static IUFControl FindControl(UFSoft.UBF.UI.IView.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;}} } CommonHelper類方法

3.配置文件
配置文件WebPartExtend以作為前綴命名,如本例中:WebPartExtend_GiftDocUIPlug.config,配置內(nèi)容如下
主要配置ExtendedPart節(jié)點(diǎn)屬性值
(1)parentPartFullName:引用的UIForm WebPart的dll
(2)extendedPartFullName:命名空間+類名

(3)extendedPartAssemblyName:程序集



<?xml version="1.0" encoding="utf-8" ?> <configuration><configSections><section name="WebPartExtend" type="UFSoft.UBF.UI.Custom.ExtendedPartSection, UFSoft.UBF.UI.FormProcess" /></configSections><WebPartExtend><ExtendedPart parentPartFullName="Homa.test.ch01.GifDocUIModel.GiftDocUIFormWebPart" extendedPartFullName="GiftDocUIPlug.GiftDocUIPlugExtend" extendedPartAssemblyName="GiftDocUIPlug.dll"></ExtendedPart></WebPartExtend> </configuration>

4.部署發(fā)布
(1)配置文件:拷貝至Portal根目錄下
(2)dll文件拷貝至Portal\UILib目錄下


5.最后運(yùn)行下單據(jù)效果


轉(zhuǎn)載于:https://www.cnblogs.com/myjacky/p/4603151.html

總結(jié)

以上是生活随笔為你收集整理的插件开发-UI插件开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。