ASP.NET привязка данных / получение переменных из кода - PullRequest
1 голос
/ 17 июля 2010

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

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

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

Ответы [ 2 ]

1 голос
/ 18 июля 2010

Привязка данных в целом (по крайней мере, в модели 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();

Или вы можете избежать написания такого рода кода и делать это в разметке, если вы используете элемент управления DataSource, например <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">

Чтобы поместить вашу переменную на страницу, вы могли бы сделать это раньше, добавив на страницу метку или текстовое поле, чтобы в своем коде вы присвоили свою переменную свойству Text, например,

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

MyLabel.Text = myVariable.ToString();

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

0 голосов
/ 18 июля 2010

Я действительно хотел бы ответить на этот вопрос с помощью примеров, кода и т. Д., Но я бы просто перефразировал информацию, которая была в Интернете годами и объяснялась в блогах и статьях бесчисленное количество раз. Вы можете начать с этой статьи который объясняет почти все, что вам нужно знать .

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

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

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

...