• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 辦公軟件教程 > 詳細頁面

        SharePoint 如何部件通過EditorPart自定義屬性面板

        SharePoint 如何部件通過EditorPart自定義屬性面板

        更新時間:2024-02-08 文章作者:未知 信息來源:網絡 閱讀次數:

        SharePoint發行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強大的團隊協作環境,使得組織能夠在整個組織內部實現整合、組織、查找和提供 SharePoint站點。

        ?????需求:編寫一個新聞展示的WebPart,要求可以分類,類別是從WebService中獲取的字符串,要求可以在屬性中勾選分類,顯示該分類的信息,分類可能會增加。我要做的就是動態生成屬性中的新聞類別,至于新聞展示就很簡單了。

        ???? ?首先,新建一個WebPart的類,然后添加引用,添加強命名,修改輸出路徑到bin下,然后加到網站中,引用進去,方便查看效果。

        ??? ? 然后,添加另一個類,EditorPart類,我們要做的,就是生成我們的控件,然后重寫EditorPart的兩個方法,來把類別輸出到SharePoint屬性面板中去。

        protected override void ? CreateChildControls()//初始化控件

        public override bool ? ApplyChanges()//保存設置

        public override void ? SyncChanges()//初始化EditorPart

        ????? ? protected override void CreateChildControls()//初始化控件

        ???? ? ?這個函數,是初始化控件的,編寫方法,我們需要的控件,我這里只是需要CheckBox做勾選,還有一個Button做全選。

        ??????? ? protected override ? void CreateChildControls()

        ??????? ? {

        ??????????? string ? type = GetTypeStr();

        ??????????? string[] ? type2 = type.Split(';');

        ??????????? typecount = type2.Length;

        ??????????? Table ? table = new Table();

        ??????????? table.CellPadding = 0;

        ??????????? table.CellSpacing = 0;

        ??????????? table.Style.Add(HtmlTextWriterStyle.Height, "190px");

        ??????????? table.Style.Add(HtmlTextWriterStyle.Width, "200px");

        ??????????? TableRow ? row = new TableRow();

        ??????????? TableCell ? cell1 = new TableCell();

        ??????????? TableCell ? cell2 = new TableCell();

        ??????????? for ? (int i = 0; i < type2.length;="">

        ??????????? {

        ??????????????? cb[i] = new CheckBox();

        ??????????????? cb[i].Text = type2[i];

        ??????????????? this.Controls.Add(cb[i]);

        ??????????????? row = new TableRow();

        ??????????????? cell1 = new TableCell();

        ??????????????? cell2 = new TableCell();

        ??????????????? cell1.Style.Add(HtmlTextWriterStyle.TextAlign, "left");

        ??????????????? cell1.Controls.Add(cb[i]);

        ??????????????? row.Cells.Add(cell1);

        ??????????????? table.Rows.Add(row);

        ??????????? }

        ??????????? btn.Click += new EventHandler(btn_Click);

        ??????????? btn.Text = "全選";

        ??????????? this.Controls.Add(btn);

        ??????????? row = new ? TableRow();

        ??????????? cell1 = new ? TableCell();

        ??????????? cell2 = new ? TableCell();

        ??????????? cell1.Style.Add(HtmlTextWriterStyle.TextAlign, "left");

        ??????????? cell1.Controls.Add(btn);

        ??????????? row.Cells.Add(cell1);

        ??????????? table.Rows.Add(row);

        ??????????? this.Controls.Add(table);

        ??????? ? }

        ????? public override bool ApplyChanges()//保存設置

        ??????這個函數,是保存我們的變量的,但是需要把要保存的值回傳到屬性中去,才可以保存,也就是說EditorPart只有一個編輯功能,所以我在屬性中聲明了一個string類型的Test變量,用來保存。This也就是EditorPart中的參數,而生成的webpart對象,則是屬性了。

        ??????? ? public override ? bool ApplyChanges()

        ??????? ? {

        ??????????? this.EnsureChildControls();

        ??????????? MyTestWebPart ? webpart = this.WebPartToEdit as MyTestWebPart;

        ??????????? if ? (webpart == null) return ? false;

        ??????????? webpart.Test = "";

        ??????????? for ? (int i = 0; i < this.typecount;="" ?="">

        ??????????? {

        ??????????????? if ? (this.cb[i].Checked == true && this.cb[i] ? != null)

        ??????????????? {

        ??????????????????? webpart.Test += "1;";

        ????????????? ??}

        ??????????????? else

        ??????????????? {

        ??????????????????? webpart.Test += "0;";

        ??????????????? }?

        ??????????? }

        ??????????? return ? true;

        ??????????? //throw ? new NotImplementedException();

        ??????? ? }

        ??????public override void SyncChanges()//初始化EditorPart

        ???? ?這個和上面的函數,作用是相反的,也就是EditorPart讀取到部件屬性的函數,我讀取到我的Test變量,然后通過這個變量,再初始化EditorPart的選項,使看起來EditorPart保存了設置一樣。

        ??????? ? public override ? void SyncChanges()

        ??????? ? {

        ??????????? EnsureChildControls();

        ??????????? MyTestWebPart ? webpart = this.WebPartToEdit as MyTestWebPart;

        ??????????? if ? (webpart == null) return;

        ?

        ??????????? string ? GetTest = webpart.Test;

        ????????? ??string[] ? GetTestGroup = GetTest.Split(';');

        ??????????? for ? (int i = 0; i < gettestgroup.length;="">

        ??????????? {

        ??????????????? if ? (GetTestGroup[i] == "1")

        ??????????????? {

        ??????????????????? cb[i].Checked = true;

        ??????????????? }

        ??????????? }

        ??????? ? }

        ?

        ???????? 最后,在WebPart中獲得編輯界面就可以了。這個就是在部件的屬性面板中,初始化EditorPart的函數了,Title也就是屬性的標題了。

        ??????? ? public override ? EditorPartCollection CreateEditorParts()

        ??????? ? {

        ??????????? EditorPartCollection ? baseParts = base.CreateEditorParts();

        ??????????? List editorParts = new List(1);

        ??????????? EditorPart ? part = new MyTestEditerPart();

        ??????????? part.ID = this.ID + "_tagValueEditor";

        ??????????? part.Title = "新聞類別";

        ??????????? editorParts.Add(part);

        ??????????? return ? new EditorPartCollection(baseParts, ? editorParts);

        ??????? ? }

        ??????? 聲明了一個Test的變量,用來保存EditorPart的值,然后Browsable設置成了false,不讓用戶看到。呵呵。

        private string _Test = "";

        ??????? ? [Browsable(false), ? FriendlyName("textbox類別"), Category("設置"), Description("請輸入類別"), DefaultValue(""), ? WebPartStorage(Storage.Shared)]

        ??????? ? public string ? Test

        ??????? ? {

        ??????????? get

        ??????????? {

        ??????????????? return ? _Test;

        ??????????? }

        ??????????? set

        ??????????? {

        ??????????????? _Test = value;

        ??????????? }

        ??????? ? }

        效果:如下圖所示,新聞類別,然后可以類別全選或者取消全選。

        SharePoint 如何部件通過EditorPart自定義屬性面板_本站

        部件展示效果:[現在是勾選那個分類,頁面上顯示那個分類]

        SharePoint 如何部件通過EditorPart自定義屬性面板_本站

        *************************************************************************************


        Sharepoint 可以幫助企業用戶輕松完成日常工作。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: a级毛片视频免费观看| 含羞草国产亚洲精品岁国产精品| 亚洲国产精品狼友中文久久久| 免费看小12萝裸体视频国产 | 国产成人综合亚洲| 日本高清不卡中文字幕免费| 国产在线观看无码免费视频| 国产在线jyzzjyzz免费麻豆| 成在线人永久免费视频播放| 国产AV无码专区亚洲AVJULIA| 亚洲国产精品无码久久久| 美女免费精品高清毛片在线视| 少妇太爽了在线观看免费视频| 搡女人真爽免费视频大全| 亚洲中文字幕伊人久久无码| 亚洲精品中文字幕无码AV| 国产午夜亚洲精品不卡电影| 亚洲国产专区一区| 亚洲国产成人99精品激情在线| 一级毛片在播放免费| 中文字幕无码不卡免费视频 | 亚洲人成精品久久久久| 在线观看亚洲AV日韩A∨| 久久久久国产精品免费网站| 亚洲一区二区三区久久| 日本在线看片免费人成视频1000| 亚洲色婷婷综合开心网| 日韩电影免费在线观看| 久久亚洲国产精品123区| 国产精品亚洲va在线观看| 国产亚洲老熟女视频| 114级毛片免费观看| 久久久久久a亚洲欧洲aⅴ| 91热久久免费精品99| 亚洲av永久无码精品表情包| 一级特黄特色的免费大片视频| 亚洲永久无码3D动漫一区| 很黄很黄的网站免费的| 日韩在线视频线视频免费网站| 国产成人免费A在线视频| 亚洲av乱码一区二区三区按摩 |