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

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

          ????

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

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


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

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

          ????????}


          ????
          ??? 要注意的一點(diǎn)就是這個(gè)屬性是隱藏的,因?yàn)槲覀儾恍枰詭У腤ebPart顯示出來,所以將Browsable設(shè)置成false。

          ??? 然后我們就需要在ToolPart中畫出我們需要的文本框了。畫出這個(gè)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得到當(dāng)前的WebPart,然后通過WebPart.Text得到我們的那個(gè)隱藏值,這個(gè)隱藏值就是文本框的初始值。這個(gè)inputname的變量是做為文本框的name。是在這個(gè)ToolPart類中聲明的,如下:

          ??? string inputname = null;

          ??? 然后通過構(gòu)造函數(shù)捕捉初始化事件:


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

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

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



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

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

          ????

          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 曾科 閱讀(249) 評論(0)  編輯  收藏 所屬分類: SharePoint Portal Server

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


          網(wǎng)站導(dǎo)航:
           
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          .net

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 拉孜县| 旬邑县| 大悟县| 乐安县| 蓝山县| 宁波市| 木里| 富阳市| 西林县| 琼海市| 沧源| 景泰县| 庆安县| 门头沟区| 杭州市| 绥中县| 台湾省| 镇江市| 盐池县| 隆林| 紫金县| 阿拉善左旗| 乳山市| 黄浦区| 阜康市| 六安市| 改则县| 建昌县| 花垣县| 阿克陶县| 北海市| 太仆寺旗| 延津县| 金阳县| 吉隆县| 玉树县| 静乐县| 富川| 工布江达县| 鸡泽县| 廊坊市|