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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MOSS 直接动态安装webPart到页面

發布時間:2024/4/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MOSS 直接动态安装webPart到页面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在現在開發的項目中,發現一個好玩的東西,就是動態把WebPart自動的加載到指定的頁面上的指定的位置?
感覺是不是很神奇?其實也很簡單,主要用到SPLimitedWebPartManager這個類就OK拉
其實這個要注意的就是下面的WebPartXml 他就是?站點的webpart gallery描述,可能一個dll文件中存在多個webpart
在實際的開發中做一個Setup連部署人員都可以不用拉。。。HOHo。。。
??????????????????????????????? string gallery = "";
??????????????????????????????? gallery = gallery + "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
??????????????????????????????? gallery = gallery + "<webParts>";
??????????????????????????????? gallery = gallery + "<webPart xmlns=\"http://schemas.microsoft.com/WebPart/v3/">";
??????????????????????????????? gallery = gallery + "<metaData>";
??????????????????????????????? gallery = gallery + "<type name=\"" + t.AssemblyQualifiedName + "\"/>";
??????????????????????????????? gallery = gallery + "<importErrorMessage>Cannot import this web part.</importErrorMessage>";
??????????????????????????????? gallery = gallery + "</metaData>";
??????????????????????????????? gallery = gallery + "<data>";
??????????????????????????????? gallery = gallery + "<properties>";
??????????????????????????????? gallery = gallery + "<property name=\"Title\" type=\"string\">" + webpartTitle + "</property>";
??????????????????????????????? gallery = gallery + "<property name=\"Description\" type=\"string\">" + webpartDesc + "</property>";
??????????????????????????????? gallery = gallery + "</properties>";
??????????????????????????????? gallery = gallery + "</data>";
??????????????????????????????? gallery = gallery + "</webPart>";
??????????????????????????????? gallery = gallery + "</webParts>";


private bool AddWebpartToPage(string TargetSiteUrl, string webPartXml, string ZoneID, int ZoneIndex,string Title,out string err)
??????? {
??????????? bool flag = false;
??????????? SPLimitedWebPartManager manager = null;

??????????? if (TargetSiteUrl == "" || webPartXml == "" || ZoneID == "")
??????????? {
??????????????? err = "001";
??????????????? return false;
??????????? }

??????????? try
??????????? {
??????????????? //重新啟動IIS

??????????????? Process p = new Process();
??????????????? p.StartInfo.FileName = "iisreset.exe";
??????????????? p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
??????????????? p.Start();
??????????????? p.WaitForExit();

??????????????? SPSite sites = new SPSite(TargetSiteUrl);
??????????????? SPWeb web = sites.RootWeb;

??????????????? manager = web.GetLimitedWebPartManager(TargetSiteUrl, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
??????????????? StringReader input = new StringReader(webPartXml);
??????????????? XmlTextReader reader2 = new XmlTextReader(input);

??????????????? System.Web.UI.WebControls.WebParts.WebPart webpart = manager.ImportWebPart(reader2, out err);
??????????????? webpart.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
??????????????? manager.AddWebPart(webpart, ZoneID, ZoneIndex);

??????????????? web.Close();

??????????????? this.SetTip("\"" + Title + "\"" + "安裝完成");

??????????????? flag = true;

??????????? }
??????????? catch (Exception exception)
??????????? {
??????????????? err = exception.Message;
??????????????? flag = false;
??????????? }
??????????? finally
??????????? {
??????????????? if (manager != null)
??????????????? {
??????????????????? manager.Dispose();
??????????????? }
??????????? }
??????????? return flag;
??????? }

大家看看是不是很簡單。。。

轉載于:https://www.cnblogs.com/lindayyh/archive/2010/01/08/1641985.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的MOSS 直接动态安装webPart到页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。