日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

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

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 可以幫助企業用戶輕松完成日常工作。

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

本類教程下載

系統下載排行

主站蜘蛛池模板: 国产一级强片在线观看 | 中文欧美日韩 | 日本三级在在线观看 | 免费人成视网站在线不卡 | 91麻豆精品国产片在线观看 | 爽爽影院在线免费观看 | 狂野猛交xxxx吃奶 | 成人爱av18丰满 | 国产盗拍| 欧美日韩成人在线观看 | 爱就操| 一区二区三区四区在线视频 | 精彩视频一区二区三区 | 日本护士三级做爰 | 久久aaa| 久久久久中文 | 成人a在线观看 | 亚洲福利视频精选在线视频 | 18video9ex欧美生活片 | 国产亚洲欧美日韩综合另类 | 欧美日韩不卡一区 | 国产欧美精品一区二区色综合 | 亚洲另类在线视频 | 伊人亚洲综合网 | 国产一级强片在线观看 | 国产成人99| 精品欧美亚洲韩国日本久久 | 在线播放不卡 | 欧美大片在线观看成人 | 日韩日韩 | 日日天干夜夜人人添 | 久久婷婷综合五月一区二区 | 欧美操片在线观看 | 狠狠色欧美亚洲狠狠色www | 一本一本久久α久久精品66 | 国产资源中文字幕 | 日韩日韩日韩日韩 | 欧美啪啪网| 91国内揄拍国内精品对白不卡 | 国产日 | 国产精品久久久久久一级毛片 |