大大毛 的笔记

  DDM's Note

哪怕没有办法一定有说法,
就算没有鸽子一定有乌鸦,
固执无罪 梦想有价,
让他们惊讶.

posts - 14, comments - 23, trackbacks - 0, articles - 58
   :: 首页 ::  :: 联系 ::  :: 管理

实现单选/多选动态转化

Posted on 2006-08-17 12:15 大大毛 阅读(418) 评论(0)  编辑  收藏 所属分类: ASP.NET

   问题:
   页面中会遇到实现单选/多选的方法,不幸的是选择单选或多选是动态决定的,例如实现投票,需要从vote表中取出数据,从而决定当前的投票是多选还是单选。
   实现这种功能最简单的方法就是放上两个panel容器,一个放checkboxlist,一个放radiobuttonlist,根据检索到的数据实现开关显示。

   解决方法:
   使用System.Web.UI.WebControls.ListControl可以轻松的实现动态的定制。
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( " 文本 " , " "
);
  
// 或者在这里进行数据绑定ctl.DataSource.

}

   后记:
   ASP.NET中规定服务端控件必须放置在Form runat="server"之内,因此动态添加时,this.Controls.Add(new Control())是不可以的,必须放入容器中,例如上面的Panel或者页面的Form中this.form1.Controls.Add...。

只有注册用户登录后才能发表评论。


网站导航:
 

i am ddm