动态添加RadioButtonList控件放到DataList模板的PlaceHolder里后,取值出错

ydfqing 2006-12-07 02:20:49
.NET2005的程序

PlaceHolder pholder = (PlaceHolder)e.Item.FindControl("pollholder");
在datalist的事件:
protected void BindOptions(object sender, DataListItemEventArgs e)
{ RadioButtonList list2 = new RadioButtonList();

list2.DataSource = dr;

list2.DataTextField = "options";

list2.DataValueField = "id";

list2.DataBind()

pholder.Controls.Add(list2);
}
protected void SubPoll(object source, DataListCommandEventArgs e)
{
RadioButtonList rlist = (RadioButtonList)e.Item.FindControl("pollholder").Controls[0];
//这句话出错:指定的参数已超出有效值的范围。
参数名: index

出错原因是没找着,placeholder,可我在ItemDataBound都绑定上了,RadiobuttonList的值都都显示出来了,为啥一到ItemCommand事件取值就没找着这个控件呢?

}
...全文
254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ydfqing 2006-12-11
  • 打赏
  • 举报
回复
谢谢毛毛在QQ里帮解决问题,请来接分~~~~~
landsnail 2006-12-08
  • 打赏
  • 举报
回复
将动态创建RadioButtonList控件方法写入DataList的ItmCreated事件中再看看!

E.g:


protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
PlaceHolder ph = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
RadioButtonList rbl = new RadioButtonList();
rbl.DataSource = ds.Tables[0];
rbl.DataTextField = "au_id";
rbl.DataBind();
ph.Controls.Add(rbl);
}
tornado379 2006-12-08
  • 打赏
  • 举报
回复
我以前出现过这样的报错:
指定的参数已超出有效值的范围。
参数名: index
但是在删除前的提示出错的,即Control[1]的参数不对
ydfqing 2006-12-08
  • 打赏
  • 举报
回复
baozhenliang()
换成Control[1]试试!
..............................

别说Control[1], 就连Control[N], Control[N]Control[N],都试过了,都没找着
StrayFog 2006-12-08
  • 打赏
  • 举报
回复
换成Control[1]试试!
ydfqing 2006-12-08
  • 打赏
  • 举报
回复
sp1234(今天的我绝对不是明天的我。)
许多情况,是页面装载时绑定DataList的代码给使用 if(!IsPostback) 判断给停止掉了。既然不创建DataList的Item,就没法读取出item的详细内容。

................................................................

我Page_Load里面没有写代码啊,也就没使用if(!IsPostback),所以不存在判断停止的问题.
我只是在DataList里面的两个事件里写的 OnItemDataBound ,OnItemCommand
ydfqing 2006-12-08
  • 打赏
  • 举报
回复
zhaochong12(笨鸟)
(PlaceHolder)e.Item.FindControl("pollholder");

这样先找找pollholder试试...

..............................................

pollholder是能找到的,我都打印出来了,关键是pollholder里面的RadioButtonList找不着
  • 打赏
  • 举报
回复
许多情况,是页面装载时绑定DataList的代码给使用 if(!IsPostback) 判断给停止掉了。既然不创建DataList的Item,就没法读取出item的详细内容。
zhaochong12 2006-12-07
  • 打赏
  • 举报
回复
(PlaceHolder)e.Item.FindControl("pollholder");

这样先找找pollholder试试...
PCHWBANK 2006-12-07
  • 打赏
  • 举报
回复
up

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧