Связывать или не связывать - PullRequest
0 голосов
/ 09 сентября 2011

В чем разница между этими примерами кода? Какой подход правильный?

 <asp:Label ID="lblShorName" runat="server" Text="<%#Customer.ShorName%>" />
 lblShorName.DataBind();

и

lblShorName.Text = Customer.ShorName;

Ответы [ 3 ]

2 голосов
/ 09 сентября 2011

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

Лично я предпочитаю последнее.Я чувствую, что он чище и отделяет разметку от функциональности, которая управляет разметкой.Но это только я.

(Я также предпочитаю не использовать привязку данных там, где я не чувствую необходимости. Но, опять же, это предпочтение того, как вы хотите использовать предоставленные инструменты.Например, в представлении ASP.NET MVC я с большей вероятностью напишу цикл и выведу HTML в этом цикле, чем я использую любой вид репитера или элемент управления сеткой и привязываю к нему данные. Просто личные предпочтения.)

Многое также зависит от того, где в вашем приложении вы хотите выполнить эти действия.В первом примере он хранится на странице, тогда как последний пример может быть обернут в условные выражения, повторно преобразован в другой метод и т. Д. Если возможно, что рассматриваемое значение не всегда изCustomer.ShortName тогда я бы пошел с последним примером, чтобы добавить эту дополнительную логику вокруг него.

1 голос
/ 09 сентября 2011

Подход зависит от того, когда вы хотите установить метку. lblShorName.Text = Customer.ShorName; Может использоваться в разных методах, событиях, таймерах. Если вы хотите установить его только в начале, вы можете использовать первый.

0 голосов
/ 09 сентября 2011

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

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

...