c#
  • asp.net
  • web-applications
  • 2012-09-20 2 views 0 likes 
    0

    у меня есть этот ASPX код:Операнд «+» с Bind/Eval в ASPX файлах

    <asp:TemplateField HeaderText="Name" SortExpression="Firmierung"> 
        <ItemTemplate> 
         <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' /> 
        </ItemTemplate> 
    </asp:TemplateField> 
    

    Я хочу добавить, если условие, так что я могу использовать операнд + с текстом, что-то вроде этого:

    <asp:TemplateField HeaderText="Name" SortExpression="Firmierung"> 
        <ItemTemplate> 
         <% if(Condition is true) { %> 
          <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") + ("Active") %>' /> 
         <% } else { %> 
          <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' /> 
         <% } %> 
        </ItemTemplate> 
    </asp:TemplateField> 
    

    Я не знаю, как использовать операнд + в этом случае. Любая помощь оценивается. Благодаря!

    ответ

    0

    Попробуйте один

    Text='<%# String.Format({0}{1},Eval("Name"),Eval("Active")) %>' 
    

    ИЛИ

    Text='<%# String.Format({0}{1},Bind("Name"),Bind("Active")) %>' 
    

    Для получения дополнительной справки, перейдите по ссылке:

    HyperLink with NavigateUrl with Eval(). Where is the mistake?

    +0

    Привет, спасибо за ваш ответ, вот что я искал, но в вашем ответе есть небольшой синтаксис ошибок, нам нужно «» для {0} {1}. Итак, это мой код, работал как шарм: Text = '<% # String.Format ("{0} ({1})", Eval ("Name"), Eval ("Active"))%> – Ragnarsson

    0

    Вы не можете сделать это с помощью Bind. Хотя с Eval вы можете добавить с ним код C#, с Bind это невозможно. Eval действительно вызов метода, но Bind - это просто объявление, которое обратилось к фреймворку к некоторому связывающему коду, и его формат должен быть Bind("FieldName") (вы можете добавить форматирование, хотя).

    Свойство HyperlinkText не доступно для редактирования клиентом, поэтому Eval должно быть достаточно, и вы можете написать его в одной строке.

    <asp:HyperLink ID="HyperLink" runat="server" 
         NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' 
         Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' /> 
    
    +0

    так, как ваше предложение, я сделал так: Text = '<% # (bool) Eval («Активный»)? Bind («Name») + «Active»: Bind («Name»)%> '/>, и я получаю эту ошибку: имя «Bind» не существует в текущем контексте. Здесь что-то не так? – Ragnarsson

    +0

    Вы не можете этого сделать. Вы не можете добавить код в 'Bind'. ou может использовать только «Eval». Что именно ты пытаешься сделать? –

    +0

    @ Magnus, это не мой ответ. Я откидываюсь назад. Если вы думаете иначе, прокомментируйте или напишите свой собственный ответ. –

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