在ASP.NET控件属性中使用条件语句

时间:2014-12-18 14:19:43

标签: asp.net binding model

我的页面上有一个DropDownList,我希望DataTextField值基于条件(语言)。我使用模型绑定,这个DropDown嵌套在绑定的FormView中。

这就是我想要做的事情:

<asp:DropDownList ID="DropDownList1" ItemType="BLL.HelperClasses.ItemForList" 
                                     DataValueField="id" DataTextField="<%#: (this.IsEnglish) ? "en" : "fr" %>" SelectMethod="DropDownList1_GetData" 
                                     SelectedValue="<%#: Item.Claim.CurrencyID %>" runat="server"></asp:DropDownList>

.NET抱怨我的DataTextField&#34;服务器标签格式不正确&#34;。 IsEnglish是我的基页中的布尔属性。

任何人都知道如何在不使用代码隐藏的情况下执行此操作?

2 个答案:

答案 0 :(得分:0)

我认为你必须插入“Eval”才能实际比较它们不是吗?

<asp:label id="Label1" runat="server" text="<%# Eval("StReply") == true ? "yes" : "no" %>"     xmlns:asp="#unknown">
</asp:label>

代码来自http://www.codeproject.com/Questions/653888/using-If-statement-in-Bind-Eval

答案 1 :(得分:0)

问题在于周围的双引号。将它们改为单引号,一切都很完美。

最终解决方案:

<asp:DropDownList ID="DropDownList1" ItemType="BLL.HelperClasses.ItemForList" 
                  DataValueField="id" DataTextField='<%#: (this.IsEnglish) ? "en" : "fr" %>' SelectMethod="DropDownList1_GetData" 
                  SelectedValue="<%#: Item.Claim.CurrencyID %>" runat="server"></asp:DropDownList>