kra*_*626 2 asp.net gridview dynamic button templatefield
已解决:请参阅下面的解决方案!
使用带有C#代码的aspx.
我在gridview中的项模板中的按钮中有以下代码:
Enabled='<%# IIF(Eval("wrqst_need_ind") == "Y","TRUE","FALSE") %>'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The name 'IIF' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如果我使用"IF"而不是"IIF",我会得到同样的错误
完整项目模板代码如下:
<ItemTemplate>
<asp:Button ID="wrqst_need_ind_btn" runat="server" Text = "Create WR"
onClientClick="javascript:popUp('popup_createWR.aspx')"
Enabled='<%# IIF(Eval("wrqst_need_ind") == "Y","TRUE","FALSE") %>'
CommandArgument='<%# Eval("dvc_nm") + "|" + Eval("data_orgtn_yr") %>'/>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
如果我把线路拿出来就可以了.
在我看来这应该工作......
编辑:我现在使用这个:
Enabled='<%#Eval("wrqst_need_ind") == "Y" ? "TRUE" : "FALSE" %>'
Run Code Online (Sandbox Code Playgroud)
并发现此错误:
服务器标签格式不正确.
非常感谢你的帮助!
更新:
我试过这个:
Enabled='<%# Eval("wrqst_need_ind") == "Y" ? Convert.ToBoolean(1) : Convert.ToBoolean(0) %>' and it ran!
Run Code Online (Sandbox Code Playgroud)
但是,每个按钮都被禁用.所以我尝试过:
Enabled='<%# Eval("wrqst_need_ind") == "Y" ? Convert.ToBoolean(1) : Convert.ToBoolean(1) %>'
Run Code Online (Sandbox Code Playgroud)
然后每个按钮都被禁用.似乎每次它都返回虚假......为什么?
已解决:请参阅下面的解决方案!
在C#中,这种三元语法是:
Eval("wrqst_need_ind") == "Y" ? "TRUE" : "FALSE"
Run Code Online (Sandbox Code Playgroud)
如果您碰巧使用VB.NET(看起来您不是),请使用该If功能.
If(Eval("wrqst_need_ind") == "Y", "TRUE", "FALSE")
Run Code Online (Sandbox Code Playgroud)
编辑:事实证明,==这里不会比较字符串内容,而是字符串对象.所以,你必须使用.Equals("Y").因此,社区产生的最终答案是:
Enabled='<%# Eval("wrqst_need_ind").Equals("Y") %>'
Run Code Online (Sandbox Code Playgroud)