如果是純手工開發web part,其實還是比較困難的,因為這種型別的web part是以類庫的形式出現,沒有視覺化的介面,完全由**寫出來,包含控制項的樣式,屬性,事件等等。開發過自定義控制項的朋友可能會感受深一些,所以在asp.net應用程式中,開發員從來不開發自定義控制項也非常常見。這種純**的開發方式的優點是靈活性強,而且部署方便,它只會包含乙個dll。但如果介面特別複雜的話,要想實現還是有一定難度的,搞不好因為一條簡單的html**的錯誤,會導致整個控制項樣式的出錯。
在moss開發中,還好微軟支援直接巢狀已經建立好的使用者控制項。不過不能直接用,它需要乙個容器控制項來包含它。這裡的容器控制項可以自己寫,也可以用已經非常成熟的quickpart。下面我將以乙個小小的搜尋列表的例子來說明如何巢狀使用者控制項到moss**中。
列表說明:我建立了乙個列表,共有兩列:標題和解決方案。內容如下圖:
需求:建立乙個web part,包含乙個文字框和乙個搜尋按鈕,實現列表的標題搜尋。
第一:部署容器控制項quickpart。
1):quickpart元件可以上網上搜尋下,然後把它部署到**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。
1:前台部分**如下:
<
asp:gridview id="
gridview1
"runat="
server
"autogeneratecolumns="
false
">
<
columns
>
<
asp:templatefield headertext="
標題">
<
itemtemplate
>
<
a href ='
dispform.aspx?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是建立列表時自動生成的,如果不清楚的話,可以先將autogeneratecolumns設定成true,看查詢內容的全部字段內容,然後根據需要選取自己需要的內容即可。
2:後台**如下:
code
//////
獲取列表的資料
//////
private
void
getdata()",
this
.tbkey.text.tostring());
query.query
=cmal;
inti =1
;query.rowlimit =1
;dowhile
(query.listitemcollectionposition
!=null);}
//////
搜尋事件
//////
///protected
void
btnsearch_click(
object
sender, eventargs e)
**說明:
1:spquery是moss中的乙個資料查詢方法,spquery有三個重要的屬性:
1):viewattributes:設定檢索的列表的範圍(scope),是否包含子檔案(default、recursive、recursiveall和filesonly)。
2):rowlimit:限制返回的行數,類似於sql中的select top n。
3):listitemcollectionposition,與分頁資訊相關。
2:spsite:web 應用程式下的**集;
3:spweb:**集下的每乙個站和子站點,要想訪問乙個列表就需要從spweb物件開始。
4:splist:列表物件,上面建立的列表就屬於這個範圍。
第三:部署建立的使用者控制項。為了部署,除錯方便,我們可以在編譯專案時讓它自動部署到moss**:
2:複製costomlist.ascx檔案到inetpub"wwwroot"wss"virtualdirectories"20983"wpresources,方法是:專案屬性-生成事件,如下圖:
總結:上面的就是如果巢狀使用者控制項的過程,比起純**開發的web part還是容易不少,畢竟是視覺化操作,而且以前的asp.net知識都可以用上,具有不容易出錯,方便除錯的優點。
MOSS開發 如何使用使用者控制項
如果是純手工開發web part,其實還是比較困難的,因為這種型別的web part是以類庫的形式出現,沒有視覺化的介面,完全由 寫出來,包含控制項的樣式,屬性,事件等等。開發過自定義控制項的朋友可能會感受深一些,所以在asp.net應用程式中,開發員從來不開發自定義控制項也非常常見。這種純 的開發...
使用使用者控制項(1)
3.2.2 使用使用者控制項 1 asp.net提供了使用者自定義控制項機制來封裝某些獨立的功能,或者是頁面的某個模組。通過這些封裝,使頁面 更加結構化,也提高了頁面 的復用性。1.基礎知識 control指令和 register指令 asp.net使用者控制項的頁面指令是 control。與web...
如何使使用者控制項應用主題
q 使用者控制項沒有 主題 屬性,如何才能應用主題和 a 使用者控制項不包含主題屬性,但使可以為頁面指定主題,這樣主題就會應用於頁面上的所有控制項,使用者控制項也會應用頁面的主題 如果乙個主題包含css檔案,則asp.net會指向css檔案。使用者控制項中如果使用了該css檔案中的樣式,則也會應用這...