Привязка данных ASP.NET, двухсторонняя, двунаправленная из кода позади

таким образом для двухсторонней (двунаправленной) привязки данных в ASP, мы делаем это...

<asp:textbox id="txtField" runat="server" 
    text='<%# Bind("SomeField") %>'>
</asp:textbox>

SomeField расположен на DataSource DetailsView, который служит контейнером для текстового поля.

Кроме того, я мог сделать это из кода - позади (использование события OnDataBinding текстового поля):

protected void SomeField_OnDataBinding(object sender, EventArgs e)
{ 
  ((TextBox)sender).Text = Eval("SomeField").ToString();
}

Однако ОЦЕНКА только для чтения..., как может я указывать Связать (двухсторонний) из кода - позади?

8
задан Konrad 20 May 2010 в 06:13
поделиться

2 ответа

Мне удалось найти обходной путь для моего "крайнего случая".

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

Я попытался "декларативно" привязаться к полю подтипа в ASP, используя <% # Bind (... Это не сработало.

Мне пришлось использовать «взлом» кода программной части, при котором я условно отображал элементы управления в подробном обзоре, используя метод предварительного рендеринга details_view.

Для каждого поля я затем условно настраиваю его одностороннюю (только для чтения) привязку в OnDataBinding ...

e.g. ((TextBox)sender).Text = Eval("FilePrefix").ToString();

Наконец, чтобы получить данные для отправки в источник данных, я взламываю события DetailsView OnItemInserting / Updating (условно как ну) ...

e.Values["FilePrefix"] = txtFilePrefix.Text;

Я чувствую себя такой грязной после этого взлома, думаю, мне нужно принять душ ...

Я все еще надеюсь, что кто-нибудь сможет предложить более чистый подход: -)

3
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: