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

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

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精品国产免费 | 亚洲小说春色综合另类网蜜桃 | 91av久久| 久久的精品99精品66 | 亚洲久久网 | 日本不卡新2区 | 99国产精品热久久久久久 | 天天草天天干 | 亚洲永久视频 | 噜噜噜福利视频在线观看 | 欧美亚洲日本一区 | 香港三级网址 | 久久综合亚洲鲁鲁五月天欧美 | 午夜影院免费观看视频 | 国产精品视频网站 | 国产欧美日韩综合二区三区 | 久久精品国产大片免费观看 | 国产三级网站在线观看播放 | 曰批免费视频播放在线看片一 | 欧美 日韩 亚洲另类专区 | 夜色福利一区二区三区 | 亚洲视频毛片 | 欧美精品久久久久久久久大尺度 | 国内精品久久久久激情影院 | 亚洲人成77777在线播放网站不卡 | 人人干操| 99视频精品免费99在线 | 成人在线视频网址 | 2020国产免费久久精品99 | 青娱乐91 | 最新欧美精品一区二区三区不卡 | 9191免费永久观看 | 亚洲欧美v视色一区二区 | 日日夜夜免费精品 | japanese色系tube日本护士 | 久碰人澡人澡人澡人澡91 | 亚洲国产精品看片在线观看 | 国产露脸无套在线观看 | 四虎亚洲国产成人久久精品 |