2014-12-18 3 views
2

У меня есть DropDownList на моей странице, и я хотел бы, чтобы значение DataTextField основывалось на условии (языке). Я использую привязку модели, и этот DropDown вложен в связанный FormView.Использование условного выражения в ASP.NET Атрибут управления

Это то, что я пытаюсь сделать:

<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 «сервер тегов недостаточно хорошо сформирован». IsEnglish - это логическое свойство на моей базовой странице.

Кто-нибудь знает, как это сделать без использования кода?

ответ

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> 
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

+0

не работает. 1) Eval должен быть сброшен до минимума. 2) Все еще дает мне YSOD, жалуясь на плохое оформление тега. Проверено другое решение в указанной вами ссылке, все еще нет кубиков. –

Смежные вопросы