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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[MOSS开发]:如何使用用户控件

發(fā)布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [MOSS开发]:如何使用用户控件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

???? 如果是純手工開發(fā)web part,其實還是比較困難的,因為這種類型的web part是以類庫的形式出現(xiàn),沒有可視化的界面,完全由代碼寫出來,包含控件的樣式,屬性,事件等等。開發(fā)過自定義控件的朋友可能會感受深一些,所以在asp.net應(yīng)用程序中,開發(fā)員從來不開發(fā)自定義控件也非常常見。這種純代碼的開發(fā)方式的優(yōu)點是靈活性強,而且部署方便,它只會包含一個DLL。但如果界面特別復雜的話,要想實現(xiàn)還是有一定難度的,搞不好因為一條簡單的HTML代碼的錯誤,會導致整個控件樣式的出錯。

?? ? 在MOSS開發(fā)中,還好微軟支持直接嵌套已經(jīng)創(chuàng)建好的用戶控件。不過不能直接用,它需要一個容器控件來包含它。這里的容器控件可以自己寫,也可以用已經(jīng)非常成熟的QuickPart。下面我將以一個小小的搜索列表的例子來說明如何嵌套用戶控件到MOSS網(wǎng)站中。

??? 列表說明:我創(chuàng)建了一個列表,共有兩列:標題和解決方案。內(nèi)容如下圖:

?

??? 需求:創(chuàng)建一個web part,包含一個文本框和一個搜索按鈕,實現(xiàn)列表的標題搜索。

??? 第一:部署容器控件QuickPart。

??????? 1):QuickPart組件可以上網(wǎng)上搜索下,然后把它部署到網(wǎng)站bin目錄;

??????? 2):修改配置文件,注冊容器控件;

<SafeControl?Assembly="QuickPart,?Version=1.0.0.0,?Culture=neutral,?PublicKeyToken=2d0bb71b2dd16f9e"
?Namespace
="Microsoft.PRC.SharePoint"?TypeName="*"?Safe="True"?/>

?

??????? 3):把新增加的控件導入到庫中,QuickPart總共會有兩個控件:

?????????? 1>:Microsoft.PRC.SharePoint.ComsumerQuickPart;

?????????? 2>:Microsoft.PRC.SharePoint.ProviderQuickPart。

??? 第二:創(chuàng)建用戶控件。一般在創(chuàng)建web part時,我們創(chuàng)建的是web part工程,現(xiàn)在要使用用戶控件,所有我們要創(chuàng)建一個web application項目,然后在里面創(chuàng)建一個名為CostomList.ascxC的用戶控件,實現(xiàn)搜索當前網(wǎng)站的列表信息。從工具箱中分別加入一個GridView,一個TextBox,一個Button,

????????? 1:前臺部分代碼如下:

<asp:GridView?ID="GridView1"?runat="server"?AutoGenerateColumns="False">
????
<Columns>
????????
<asp:TemplateField?HeaderText="標題">
????????????
<ItemTemplate>
????????????????
<a?href?='DispForm.aspx?ID=<%#?Eval("ID")%>'>
????????????????
<%#?Eval("Name")?%>
????????????????
</a>
????????????
</ItemTemplate>
????????
</asp:TemplateField>
????
</Columns>
</asp:GridView>
<asp:TextBox?ID="tbKey"?runat="server"></asp:TextBox>
<asp:Button?ID="btnSearch"?runat="server"?onclick="btnSearch_Click"
????Text
="搜索3"?/>

?

???????? 代碼說明:其中的字段:ID,Name是創(chuàng)建列表時自動生成的,如果不清楚的話,可以先將AutoGenerateColumns設(shè)置成true,看查詢內(nèi)容的全部字段內(nèi)容,然后根據(jù)需要選取自己需要的內(nèi)容即可。
???

??????? 2:后臺代碼如下:

Code
///?<summary>
????????
///?獲取列表的數(shù)據(jù)
????????
///?</summary>
????????
///?<returns></returns>
????????private?void??GetData()
????????{
???????????
????????????SPSite?site?
=?SPContext.Current.Site;
????????????SPWeb?web?
=?site.OpenWeb();
????????????SPList?list?
=?web.Lists["我的自定義列表"];
????????????SPQuery?query?
=?new?SPQuery();
????????????
//檢索所有的項目
????????????query.ViewAttributes?=?"Scope='RecursiveAll'";
????????????
string?cmal?=?string.Format("<Where><Contains><FieldRef?Name='Title'?/><Value?Type='Text'>{0}</Value></Contains></Where>",?this.tbKey.Text.ToString());
????????????query.Query?
=?cmal;
????????????
int?i?=?1;
????????????query.RowLimit?
=?1;
????????????
do
????????????{

????????????????SPListItemCollection?listItems?
=?list.GetItems(query);
????????????????
this.GridView1.DataSource?=?listItems;
????????????????
this.GridView1.DataBind();
???????????????
????????????????query.ListItemCollectionPosition?
=?listItems.ListItemCollectionPosition;

????????????????i
++;

????????????}
????????????
while?(query.ListItemCollectionPosition?!=?null);
????????
????????}
????????
///?<summary>
????????
///?搜索事件
????????
///?</summary>
????????
///?<param?name="sender"></param>
????????
///?<param?name="e"></param>
????????protected?void?btnSearch_Click(object?sender,?EventArgs?e)
????????{
????????????
this.GetData();
????????}

??????? 代碼說明:

?????????? 1:SPQuery是MOSS中的一個數(shù)據(jù)查詢方法,SPQuery有三個重要的屬性:

??????????????? 1):ViewAttributes:設(shè)置檢索的列表的范圍(Scope),是否包含子文件(Default、Recursive、RecursiveAll和FilesOnly)。

????????? ? ? ? 2):RowLimit:限制返回的行數(shù),類似于SQL中的select top n。

??????????????? 3):ListItemCollectionPosition,與分頁信息相關(guān)。

?????????? 2:SPSite:web 應(yīng)用程序下的網(wǎng)站集;

??????? ?? 3:SPWeb:網(wǎng)站集下的每一個站和子站點,要想訪問一個列表就需要從SPWeb對象開始。

?????????? 4:SPList:列表對象,上面創(chuàng)建的列表就屬于這個范圍。

??? 第三:部署創(chuàng)建的用戶控件。為了部署,調(diào)試方便,我們可以在編譯項目時讓它自動部署到MOSS網(wǎng)站:

???????? 1:復制生成的DLL文件到網(wǎng)站BIN目錄,方法是,項目屬性-生成-輸出目錄,如下圖:

?

???????? 2:復制CostomList.ascx文件到Inetpub"wwwroot"wss"VirtualDirectories"20983"wpresources,方法是:項目屬性-生成事件,如下圖:

?


???? 第四:在要編輯的頁面中添加ProviderQuickPart控件,在用戶控件列表中就能看到我們剛才創(chuàng)建的用戶控件了,選中添加就行了。

?


???? 總結(jié):上面的就是如果嵌套用戶控件的過程,比起純代碼開發(fā)的web part還是容易不少,畢竟是可視化操作,而且以前的asp.net知識都可以用上,具有不容易出錯,方便調(diào)試的優(yōu)點。

???? ?

轉(zhuǎn)載于:https://www.cnblogs.com/ASPNET2008/archive/2009/01/07/1371101.html

總結(jié)

以上是生活随笔為你收集整理的[MOSS开发]:如何使用用户控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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