大大毛 的筆記

            DDM's Note

          哪怕沒有辦法一定有說法,
          就算沒有鴿子一定有烏鴉,
          固執(zhí)無罪 夢想有價,
          讓他們驚訝.

          posts - 14, comments - 23, trackbacks - 0, articles - 58
             :: 首頁 ::  :: 聯(lián)系 ::  :: 管理

          實現(xiàn)單選/多選動態(tài)轉(zhuǎn)化

          Posted on 2006-08-17 12:15 大大毛 閱讀(428) 評論(0)  編輯  收藏 所屬分類: ASP.NET

          ???問題:
          ???頁面中會遇到實現(xiàn)單選/多選的方法,不幸的是選擇單選或多選是動態(tài)決定的,例如實現(xiàn)投票,需要從vote表中取出數(shù)據(jù),從而決定當(dāng)前的投票是多選還是單選。
          ???實現(xiàn)這種功能最簡單的方法就是放上兩個panel容器,一個放checkboxlist,一個放radiobuttonlist,根據(jù)檢索到的數(shù)據(jù)實現(xiàn)開關(guān)顯示。

          ???解決方法:
          ???使用System.Web.UI.WebControls.ListControl可以輕松的實現(xiàn)動態(tài)的定制。
          protected ? void ?Page_Load( object ?sender,?EventArgs?e)?{
          ??
          bool ?isSingle? = ? false
          ;
          ??System.Web.UI.WebControls.ListControl?list?
          = ? null
          ;
          ??
          if
          (isSingle)?{
          ????list?
          = ? new
          ?RadioButtonList();
          ??}?
          else
          ?{
          ????list?
          = ? new
          ?CheckBoxList();
          ??}
          ??
          this
          .Panel1.Controls.Add(list);

          ??
          if ( !
          IsPostBack())?{
          ????rebindData(list);
          ??}
          }

          private ? void
          ?rebindData(ListControl?ctl)?{
          ??ctl.Items.Add(
          new ?ListItem( " 文本 " , " "
          );
          ??
          // 或者在這里進(jìn)行數(shù)據(jù)綁定ctl.DataSource.

          }

          ???后記:
          ???ASP.NET中規(guī)定服務(wù)端控件必須放置在Form runat="server"之內(nèi),因此動態(tài)添加時,this.Controls.Add(new Control())是不可以的,必須放入容器中,例如上面的Panel或者頁面的Form中this.form1.Controls.Add...。

          i am ddm

          主站蜘蛛池模板: 象州县| 海淀区| 罗甸县| 新闻| 松江区| 会同县| 资溪县| 宾川县| 牡丹江市| 丹江口市| 沙河市| 祁门县| 岑溪市| 特克斯县| 黑水县| 乌拉特前旗| 承德县| 金坛市| 密山市| 仁化县| 庆阳市| 天水市| 凉山| 张掖市| 翁源县| 闸北区| 横山县| 临澧县| 同江市| 普定县| 泰安市| 嘉善县| 宁强县| 赣榆县| 福泉市| 哈密市| 调兵山市| 卢氏县| 岳普湖县| 天门市| 那曲县|