2010-07-17 5 views
1

Так что я не использовал ASP.NET в течение трех лет или около того, и я действительно ржавый на нем. Мой старый код недоступен для просмотра (у старой компании). Этот вопрос должен быть довольно простым, но я не могу найти никаких хороших или надежных или нет-супер-старых ресурсов по этой проблеме, поэтому я прошу здесь.ASP.NET databinding/получение переменных из codebehind

Могу ли я получить общий обзор привязки данных еще раз? Я помню, что это действительно полезно для отдельных ящиков и т. Д., Но я действительно не помню, как это работает. Возможно, хороший учебник ASP.NET в целом, потому что я не помню, как он обрабатывает запросы POST или что-то в этом роде. Должен ли я просто попробовать ASP.NET MVC?

Кроме того, предположим, что у меня есть переменная public на моей странице кода. Прямо сейчас я обращаюсь к нему, говоря Page.DataBind() в конце функции загрузки страницы, а затем запускаю <%# variable %> в ASPX, но я не помню, как это делалось раньше, и я считаю, что это не очень хорошая практика. Каков наилучший способ отображения переменных из кода?

+0

Соглашение заключается в том, что вы принимаете ответ «какой ответ наиболее полезен для вас» - прямо из FAQ. Система репутации является главной движущей силой в предоставлении качественных ответов. Если вы не участвуете в общинных соглашениях, вы не помогаете создавать сообщество и создавать более качественные ответы. К вашему другому вопросу, более обобщенные вопросы должны быть Community Wiki. –

ответ

1

Связывание данных в целом (по крайней мере, в модели WebForms) в основном относится к назначению полей для отображения, устанавливая свойство DataSource подходящему объекту, который содержит эти поля, например. DataReader, DataTable, Collection и вызов метода DataBind. Так что для вашего select случае, вы бы положить <asp:dropdownlist runat="server" id="MyDropDownList"> в разметке для страницы, а затем в коде

DataSet myDataSet; 

myDataSet = someDataMethod(); 

MyDropDownList.DataTextField = fieldname; 
MyDropDownList.DataValueField = fieldname; 
MyDropDownList.DataSource = myDataSet; 
MyDropDownList.DataBind(); 

Или вы можете избежать написания такого рода кода и сделать это в разметке, если вы используете Управление источником данных, например <asp:SqlDataSource>, <asp:ObjectDataSource>

<asp:SqlDataSource runat="server" id="MySqlDataSource" ConnectionString="aConnectionString" SelectCommand="MyStoredProcName" SelectCommandType="StoredProcedure" /> 
<asp:dropdownlist runat="server" id="MyDropDownList" DataSourceId="MySqlDataSource" DataTextField="fieldname" DataValueField="fieldname"> 

Для ввода переменную на странице, как вы могли бы сделать это до того, чтобы иметь этикетку или текстовое поле на странице, что в коде-за присвоить переменную в текст собственность, например

<asp:label runat="server" id="MyLabel" /> 

MyLabel.Text = myVariable.ToString(); 

Обратная передача: Вы можете проверить IsPostback свойства страницы в код-сзади, чтобы определить, является ли это постбэк или нет. После метода Page_Load другие методы будут срабатывать, если вы определили их, например. SelectedIndexChanged для DropDownList.

0

Я действительно хотел ответить на этот вопрос примерами и кодом и т. Д., Но я просто хотел бы перефразировать информацию, которая была в Интернете в течение многих лет, и объяснялась в блогах и статьях бесчисленных раз. Вы можете начать с this article which explains almost everything you need to know.

Я выделил те, которые, как мне кажется, важны, чтобы отметить, что некоторые мои скины.

  1. <% #%> Синтаксис
  2. Page.DataBind() в сравнении с контролем.DataBind()
  3. данных с привязкой список управляет
  4. управления Повторитель
  5. управления DataList
  6. управления DataGrid
  7. Доступ к данным
  8. DataSet класс
  9. DataReader Класс
  10. Связывание в списке контрольные шаблоны
  11. DataBinder.Eval метод
  12. Явного литье
  13. ItemDataBound событие

Что касается обучения MVC над WebForms, что это совсем другая история. У обоих есть плюсы и минусы в зависимости от вашего времени, что вам НУЖНО знать и какие части проекта важны. Оба специалиста могут выполнить то же самое, что и все ASP.NET в их основе, просто разные подходы, так что вы будете в порядке.