Хитрый способ использования <% # Bind%> в ASP.NET - PullRequest
0 голосов
/ 11 января 2012

В ASP.NET я могу использовать <% # Bind%> для достижения двустороннего связывания данных, тогда контроль источника данных может завершить функцию обновления для меня.

Однако я думаю, что это простокогда вы просто показываете простой формат, такой как

<%# Bind("InsertDate") %>

Но, если я хочу показать 'N / A', когда InsertDate не существует.тогда как использовать <% # Bind%> для выполнения проверки условия?

Я знаю, что функция Bind поддерживает строку формата, например

<%# Bind("InsertDate", "0:{dd MMM yyyy}") %>

Но она не может изменить формат на основе содержимого InsertDate.

Я даже пытаюсь использовать:

<%# FormatString(Bind("InsertDate").ToString()) %>

Кажется, не работает, что обычно работает для функции Eval.

Другой пример - у меня есть битовый столбец в таблице (например,5) который представлен списком флажков, обернутым элементом управления ListView, например

    <asp:checkboxlist>
     <asp:ListItem value="1" text="OptionA">
     <asp:ListItem value="2" text="OptionB">
     <asp:ListItem value="4" text="OptionC">
    </asp:checkboxlist>

, тогда как использовать <% # Bind%> для достижения двустороннего связывания для привязки побитового столбца к этому списку флажков?

В настоящее время я делаю следующее:

  1. установка выбранного элемента (значения) флажка в обработчике события ItemDataBound в ListView

  2. с использованием HiddenField ипривязать данные к этому скрытому полю, чтобы добиться двустороннего связывания данных.

  3. В обработчике события ItemUpdating в LivtView я обновляю свойство NewValue ListViewUpdateEventArgs выше требуемого значения.и тогда EntityDataSource может правильно выполнить операцию обновления.

Но я думаю, что этот метод не прост и хорош.

Так есть ли другой лучший способ сделать это

1 Ответ

0 голосов
/ 11 января 2012

Попробуйте использовать общедоступный тип данных.

В вашем коде позади объявите переменную как

public string name;
//Do whatever assignment operations to your variable "name"

И на вашей странице aspx. Вы можете назвать это

<% Response.Write(name); %>
...