救急!如何根据Eval值动态显示不同的控件?
需求是一个投票系统,后台是可以设置多选或单选的,现在的问题是如何根据得到的多选或单选来动态显示为CheckBox或RadioButton呢?
C# code
<td height="23">
<asp:CheckBoxValue ID="CheckBoxOption" Value='<%#Eval("OptionID") %>' runat="server" />
</td>
上面代码是在RepeaterItem中,如果通过if(Eval("state").ToString() == "True")这样的代码去判断是否为多选,就会出现错误提示:Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用,我试了动态加载控件,是可以动态加载的,但我还要在回发中获取动载加载的控件值,查了下资料说动态加载的控件是FindControl找不到的。上面两条路都行不通,怎么办呢?
------解决方案--------------------?:
三目运算符。
------解决方案--------------------放一个Literal控件算了,后台根据数据库动态确定Literal.Text的值,用html标签。Request.Form[""]获取值。
要么用PlaceHolder,后台动态往里添加CheckBox或RadioButton
或者用CheckBoxList,后台动态添加Item,确保只能选其一还是可多选。
------解决方案--------------------在绑定事件里面,动态生成控件,不要在aspx里面写<%#Eval("state").ToString()
------解决方案--------------------