说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

模板列中radiobuttonlist从数据库绑定,有回递事件发生时出现问题,谢谢各位!

编辑:说三道四文库 发布时间:2018-05-22 04:10
HTML文档下载 WORD文档下载 PDF文档下载
DataGrid里有两个模板列,一个是CheckBox,一个是RadioButtonList,后者内容从数据库中绑定,目的是要选中checkbox时,radio隐藏,取消check时,radio显示让用户去选择radio的内容;我用了下面几种方法,都出现了问题;
1、在Datagrid的ItemDataBound事件里添加绑定radiolist的程序,运行时能显示出正确的绑定结果,当我选中同一行的check时,引发回递,所有行的radiolist全都不见了,就好象绑定丢失了,实际上只要按任何能引起回递的按钮,所有行的radiolist都全消失;
2、接着我把绑定的代码放!Page.Ispostback里,不用ItemDataBound事件,同样开始运行时能显示正确绑定结果,回递后消失(跟我以前动态添加表格行相似,我根据数据库的数据行数,动态生成HtmlTableRow,是放在!Page.Ispostback里,有postback时,刚刚还显示的行也没了);
3、我把代码放在PageLoad()里,点某行check,该行的radio隐藏了,但点另一行的check时,另一行的radio隐藏了,但刚才隐藏的radio却又显示了!而且所有行的radio的选择全部清空;
我在ItemDataBound事件里用如下方法绑定:

    RadioButtonList rbt=(RadioButtonList)e.Item.Cells[5].FindControl("radio_bt");
    数据库操作
    rbt.DataSource=dbtable;
rbt.DataTextField="mc";
rbt.DataValueField="xh";
rbt.DataBind();
}
在其它地方用:
数据库操作
foreach(DataGridItem dt in dg_kq.Items)
{
//bind radio
RadioButtonList rbt=(RadioButtonList)dt.Cells[5].FindControl("radio_bt");
if(rbt!=null)
{
rbt.DataSource=dbtable;
rbt.DataTextField="mc";
rbt.DataValueField="xh";
rbt.DataBind();
}
}
请各位老大提供宝贵意见,来者有分!先行谢过!
我自己顶一顶,这人气。。。怎么都在提问,没人回答啊!
我也是一个新手 checkbox 和radiobuttonlist我用过
  但 没象你那么用
我看你的东西不难 再好好调一调程序 我帮你顶!!!!!!
谢谢回复,其实把radiolist不放在模板列里,而放在其它地方,有!Page.Ispostback里绑定是不会出现上面的问题的,但放在模板列里就有!我在Page_Load里绑定(第3种),我就知道会出那样的问题,但在!Page.Ispostback会什么回递后会消失,就奇怪了!
up 
if(!IsPostBack)
{
//你的代码
}
chenhenet(缥缈浪客) ,
我的第2种方法就是这样的,实验证明不行,当然若radiobuttonlist不话模板列里,这样是可以的,如果这样都不行,我就准备动态生成表格再加绑定的radiolist添加到单元格里,这是可以的!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘