救急!如何根据Eval值动态显示不同的控件?

lovebaby 2012-02-17 05:28:31
需求是一个投票系统,后台是可以设置多选或单选的,现在的问题是如何根据得到的多选或单选来动态显示为CheckBox或RadioButton呢?


<td height="23">
<asp:CheckBoxValue ID="CheckBoxOption" Value='<%#Eval("OptionID") %>' runat="server" />
</td>


上面代码是在RepeaterItem中,如果通过if(Eval("state").ToString() == "True")这样的代码去判断是否为多选,就会出现错误提示:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用,我试了动态加载控件,是可以动态加载的,但我还要在回发中获取动载加载的控件值,查了下资料说动态加载的控件是FindControl找不到的。上面两条路都行不通,怎么办呢?
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你可以看到,在主程序中,如何读取用户控件暴露出来接口上的属性值。而这些属性值是在用户控件内部动态编辑修改的。
  • 打赏
  • 举报
回复
[Quote=引用楼主 xiaojie_cp 的回复:]
我试了动态加载控件,是可以动态加载的,但我还要在回发中获取动载加载的控件值,查了下资料说动态加载的控件是FindControl找不到的。上面两条路都行不通,怎么办呢?
[/Quote]

基本的机制,可以参考我以前写过的一个demo:http://dotnet.wgets.com/thread/252294
lovebaby 2012-02-18
  • 打赏
  • 举报
回复
net_lover
我试过在.aspx中放入一个Panel,然后.aspx.cs中根据state值动态生成CheckBox或RadioButton,生成是可以的,但回发之后,我再去通过FindControl找RepeaterItem中的CheckBox或RadioButton,就找不到了。

我现在的解决应该和6楼的差不多,用了一种取巧的办法,同时放CheckBox和RadioButton,然后在.aspx.cs中根据state值动态设置哪个显示哪个隐藏。
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaojie_cp 的回复:]
net_lover
我试过在.aspx中放入一个Panel,然后.aspx.cs中根据state值动态生成CheckBox或RadioButton,生成是可以的,但回发之后,我再去通过FindControl找RepeaterItem中的CheckBox或RadioButton,就找不到了。

我现在的解决应该和6楼的差不多,用了一种取巧的办法,同时放CheckBox和RadioButton,……
[/Quote]
回发之后,确定repeater里一定有数据吗?
先不要急着用findcontrol找,有可能是repeater里啥数据也没有导致的。
Ultimate 2012-02-17
  • 打赏
  • 举报
回复
其实这种选择,你还不如先把得到 Eval("")值进行判断,然后在控件里面选
色拉油 2012-02-17
  • 打赏
  • 举报
回复
用两个placeholder分别把单选多选放进去,根据后台选择,显示不同
孟子E章 2012-02-17
  • 打赏
  • 举报
回复
在绑定事件里面,动态生成控件,不要在aspx里面写<%#Eval("state").ToString()
dalmeeme 2012-02-17
  • 打赏
  • 举报
回复
放一个Literal控件算了,后台根据数据库动态确定Literal.Text的值,用html标签。Request.Form[""]获取值。

要么用PlaceHolder,后台动态往里添加CheckBox或RadioButton

或者用CheckBoxList,后台动态添加Item,确保只能选其一还是可多选。
lovebaby 2012-02-17
  • 打赏
  • 举报
回复
<%#Eval("state").ToString() == "True":<asp:CheckBoxValue ID="CheckBoxOption" Value='<%#Eval("OptionID") %>' runat="server" /> %>
写不下去了,这怎么写呢,肯定不行啊
lovebaby 2012-02-17
  • 打赏
  • 举报
回复
只试过三目运算符显示不同字符串,没试过加载控件,我试试
laowang134 2012-02-17
  • 打赏
  • 举报
回复
?:
三目运算符。

62,046

社区成员

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

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

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

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