posts - 5,  comments - 5,  trackbacks - 0
          ? 我們在自定義的ToolPart中定義了一個文本框的字符串屬性。

          ??? 首先我們知道,屬性都是保存在WebPart中,所以我們需要在WebPart中建立相應屬性來保存此值,如下:

          ????

          // 這個屬性是隱藏的,主要用于接收自定義的ToolPart中的自定義屬性的值
          ????????[Browsable( false
          ),
          ????????????Category(
          " Miscellaneous "
          ),
          ????????????DefaultValue(defaultText),
          ????????????WebPartStorage(Storage.Personal),
          ????????????FriendlyName(
          " Text "
          ),
          ????????????Description(
          " Text?Property "
          )]
          ????????
          public ? string
          ?Text
          ????????
          {
          ????????????
          get

          ????????????
          {
          ????????????????
          return
          ?text;
          ????????????}


          ????????????
          set

          ????????????
          {
          ????????????????text?
          =
          ?value;
          ????????????}

          ????????}


          ????
          ??? 要注意的一點就是這個屬性是隱藏的,因為我們不需要自帶的WebPart顯示出來,所以將Browsable設置成false。

          ??? 然后我們就需要在ToolPart中畫出我們需要的文本框了。畫出這個ToolPart的方法大家都很熟悉了,就是RenderToolPart代碼如下:


          /// ? <summary>
          ????????
          ///
          ?Render?this?tool?part?to?the?output?parameter?specified.
          ????????
          /// ? </summary>

          ????????
          /// ? <param?name="output"> The?HTML?writer?to?write?out?to? </param>

          ???????? protected ? override ? void
          ?RenderToolPart(HtmlTextWriter?output)
          ????????
          {
          ????????????ToolPane?tp?
          = ? this
          .ParentToolPane;
          ????????????CustomProps?myWP?
          =
          ?(CustomProps)tp.SelectedWebPart;
          ????????????
          ????????????output.Write(
          " 請輸入信息:<input?name=\ "" ?

          ???????????????? + ?inputname? + ? " \ " ?type = \ " text\ " ?value = \ "" ? +
          ?myWP.Text
          ????????????????
          + ? " \ " >< BR > " );

          ????????}



          ??? 在這段代碼中,ToolPane tp = this.ParentToolPane是得到ToolPart所在的ToolPane,然后通過ToolPane.SelectedWebPart得到當前的WebPart,然后通過WebPart.Text得到我們的那個隱藏值,這個隱藏值就是文本框的初始值。這個inputname的變量是做為文本框的name。是在這個ToolPart類中聲明的,如下:

          ??? string inputname = null;

          ??? 然后通過構造函數捕捉初始化事件:


          public ?CustPropsToolPart()
          ????????
          {
          ????????????
          this .Title? = ? " 自定義屬性的ToolPart "
          ;
          ????????????
          this .Init? += ? new
          ?EventHandler(CustPropsToolPart_Init);
          ????????}

          private ? void ?CustPropsToolPart_Init( object
          ?sender,?EventArgs?e)
          ????????
          {
          ????????????
          // 設置定義義屬性的文本框的name

          ???????????? this .inputname? = ? this .UniqueID? + ? " msg "
          ;
          ????????}



          ??? 在初始化函數中設置inputname的值,這個值只要是一個唯一的就可以了,所以借助了UniqueID。

          ??? 這是呈現,那么如何在用戶填寫了以后保存起來這個值呢?也即保存到我們WebPart中那個隱藏的Text屬性中。這就要通過ToolPart類中的ApplyChanges()方法,這是點擊了確定確認了修改的時候執行的方法。代碼如下:

          ????

          public ? override ? void ?ApplyChanges()
          ????????
          {
          ????????????
          //
          ?Apply?property?values?here.
          ????????????
          // 得到WebPart對象

          ????????????ToolPane?tp? = ? this
          .ParentToolPane;
          ????????????CustomProps?myWP?
          =
          ?(CustomProps)tp.SelectedWebPart;

          ????????????
          // 將我們自定義的值傳回到WebPart的Text屬性中。

          ????????????myWP.Text? =
          ?Page.Request.Form[inputname];
          ????????}



          ??? 通過這段代碼我們可以看到,采用Page.Request.Form[inputname]得到輸入在文本框中的值,然后賦值給隱藏域。

          ??? 這種自定義屬性有什么好處呢?在于你可以控制ToolPart的輸出,比如你可以做一些特殊的控件讓用戶方便的輸入屬性等。或者你可以更改文本框的背景色或者前景色,也即你自己控制的力度加大了。

          摘自海洋工作室( http://sps.oceanstudio.net

          posted on 2006-11-28 00:36 曾科 閱讀(244) 評論(0)  編輯  收藏 所屬分類: SharePoint Portal Server

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          .net

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南城县| 洛川县| 巴彦淖尔市| 九龙坡区| 武威市| 长宁县| 肇东市| 和政县| 葫芦岛市| 茌平县| 夹江县| 德惠市| 夏邑县| 石首市| 永胜县| 湄潭县| 始兴县| 汝南县| 乳山市| 慈溪市| 葫芦岛市| 宿迁市| 西乡县| 连城县| 额济纳旗| 昌平区| 红原县| 调兵山市| 龙里县| 崇明县| 五峰| 丹江口市| 神木县| 唐山市| 扶绥县| 岳普湖县| 建阳市| 南丰县| 浠水县| 沅陵县| 平远县|