大大毛 的筆記

            DDM's Note

          哪怕沒(méi)有辦法一定有說(shuō)法,
          就算沒(méi)有鴿子一定有烏鴉,
          固執(zhí)無(wú)罪 夢(mèng)想有價(jià),
          讓他們驚訝.

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

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

          ???解決方法:
          ???使用System.Web.UI.WebControls.ListControl可以輕松的實(shí)現(xiàn)動(dòng)態(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),因此動(dòng)態(tài)添加時(shí),this.Controls.Add(new Control())是不可以的,必須放入容器中,例如上面的Panel或者頁(yè)面的Form中this.form1.Controls.Add...。

          i am ddm

          主站蜘蛛池模板: 广汉市| 衡水市| 东光县| 双牌县| 桓台县| 双流县| 邢台县| 潮安县| 余江县| 阳谷县| 昆明市| 隆昌县| 洛川县| 承德县| 陈巴尔虎旗| 利川市| 桑日县| 南溪县| 宝兴县| 尉氏县| 曲阜市| 宁安市| 新密市| 延吉市| 肇源县| 疏附县| 霍城县| 布拖县| 绥芬河市| 靖边县| 玉环县| 武胜县| 蛟河市| 九龙坡区| 昌黎县| 福建省| 梓潼县| 和田市| 通州区| 齐齐哈尔市| 巫山县|