В шаблони web-форм .aspx, крім статичного тексту і серверних ЕУ, можуть включатися виконуються вирази. Такі вирази після виконання включають замість себе в web-форми деякі значення. Є два типи виконуваних в шаблоні web-форми виразів:
• S-вирази (мають формат <% $ [вираз]%>);
• # -виражена (мають формат <% # [вираз]%>).
Що Їх S-вирази (<% $ ...%>) можуть включатися тільки в теги серверних ЕУ для завдання їх властивостей. Такі вирази виконуються в момент звернення до сторінки. Є два основних види таких виразів:
• для отримання значення з розділу <appSettings> файлу web.config <% $ AppSettings: [nMB]%>:. Наприклад, вираз <% $ AppSettings: appName%> використовується для отримання значення змінної арpName з файлу config.web:
<AppSettings>
<Add key = "appName" value-'xxxxx "/>
</ AppSettings>
• для отримання рядка з'єднання з розділу <connection- Strings> файлу web.config <% $ ConnectionStrings: [MMH]%>:. Наприклад, вираз <% $ ConnectionStrings: Northwind%> використовується для отримання текстового рядка з'єднання з ім'ям Northwind з файлу config.web:
<ConnectionStrings>
<Add name = "Northwind" connectionString = '' Data Source =
Visual Studio містить вбудований будівник $ -виражена, який дозволяє добувати призначені для користувача настройки програми та інформацію про рядку підключення, розташовані в файлі web.config.
Що Їх вираження <% # ...%>. Вираз, записане в такому форматі, буде виконуватися тільки після виклику методу DataBind () для сторінки Раді, яка містить ЕУ, або для самого ЕУ. Цей вираз може використовувати змінні, константи і виклики відкритих (public) і захищених (protected) методів програмного коду. Воно може включатися в будь-яке місце шаблону web-форми .aspx і зазвичай використовується для завдання властивостей елементів управління (не тільки текстових, але і будь-яких, наприклад: Color, NavigateUrl і т. П.). наприклад:
<Asp: Label id = "label1" Text = <% # "Результат дорівнює" + (1 + 2) + місцевий час "+ DateTime.Now.ToLongTimeString ()%> runat-" server "/>
В результаті виконання методу DataBind ():
public void Page_Load (object s, EventArgs e) {
if (! Page.lsPostBack)
Page.DataBind ();
}
на сторінці буде показано текстове повідомлення виду Результат дорівнює 3, поточний час 14:05:27
Є спеціальний вид # -виражена <% # Eval ()%>, які дозволяють включати в шаблони складових ЕУ дані з пов'язаної з ним вибірки. Вираз <% # Eval ()%> має наступний повний синтаксис:
В даному вираженні на виконання викликається статичний метод Eval () класу DataBinder. Даний метод виробляє виконання заданого виразу expression (зазвичай назва поля оброблюваної записи) щодо поточного виконуваного об'єкта Contain- er.Dataltem [це поточний об'єкт (обробляється запис), який використовується в шаблоні складеного ЕУ].
Параметр Container.Dataltem посилається на об'єкт, для якого оцінюється другий параметр expression. Властивість Dataltem є об'єктом в контейнері поточного контексту. Зазвичай контейнер є поточним екземпляром елемента даних, наприклад об'єкт Data- Gridltem, який готовий до використання для формування HTML- коду. Другий параметр зазвичай є рядком з ім'ям поля, значення якого потрібно отримати у об'єкта елемента даних. Це може бути виразом, яке включає індекси і імена властивостей.
Показаний раніше код зазвичай повторюється завжди в одній і тій же формі. У різних сторінках змінюються лише другий параметр expression і форматує рядок (третій параметр, який не показаний). У зв'язку з цим є наступна компактна форма запису методу DataBinder.Eval (): <% # Eval (expression)%>.
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter