使用ASPX表达式引用RadioButtonList值时出现解析错误求助
ASPX绑定表达式IIf解析错误的解决方案
问题根源
IIf是VB的旧式函数,在ASPX服务器控件的绑定表达式中会触发解析错误,需替换为VB原生的If运算符(支持短路求值,适配ASPX解析机制),或C#的三元条件运算符?:。
另外原代码中<asp:RadioButtonList>标签缺失闭合的>,属于语法疏漏,需补全。
修正后的代码
VB环境
<asp:RadioButtonList ID="rblApprovalSelection" runat="server"> <asp:ListItem Value="1">Item1</asp:ListItem> <asp:ListItem Value="2">Item2</asp:ListItem> <asp:ListItem Value="3" Selected="True">Item3</asp:ListItem> <asp:ListItem Value="4">Item4</asp:ListItem> <asp:ListItem Value="5">Item5</asp:ListItem> </asp:RadioButtonList> <asp:BoundField DataField="MyData" Visible='<%# If(rblApprovalSelection.SelectedItem.Value = "3", False, True) %>' HeaderText="DataHeader" />
注意:
SelectedItem.Value是字符串类型,判断时需用"3"而非数字3,避免类型不匹配问题。
C#环境
若项目基于C#,绑定表达式需调整为:
<asp:BoundField DataField="MyData" Visible='<%# rblApprovalSelection.SelectedItem.Value == "3" ? false : true %>' HeaderText="DataHeader" />
关键说明
ASPX引擎对绑定表达式的语法解析要求严格,IIf作为传统函数无法被正确识别,而If(VB)或三元运算符(C#)是语言内置的条件语法,能被引擎正确解析执行,同时支持更安全的类型检查与短路逻辑。
内容的提问来源于stack exchange,提问作者Sixthsense
相关产品推荐
相关产品推荐

