This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
api:field [2009/11/21 14:40] celutp |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Работа с полями ====== | ||
- | |||
- | ===== Field ===== | ||
- | |||
- | <code c#>string Field(DataRowView pDataItem, string key)</code> | ||
- | <code c#>string Field(DataRowView pDataItem, string key, string defaultvalue) </code> | ||
- | <code c#>string Field(DataRow pDataItem, string key)</code> | ||
- | <code c#>string Field(DataRow pDataItem, string key, string defaultvalue)</code> | ||
- | |||
- | Возвращает значение поля //key// для данного DataRowView. Для возвращаемого значения выполняется [[:edit:url_auto_replace|замена плейсхолдеров]]. Если нужно выполнить только замену без чтения данных, нужно воспользоваться функцией [[#FormatField]]. В режиме [[OnScreen]] функция Field генерирует редактируемую обертку (тег //div// с тулбаром). Если данное поведение нежелательно, то нужно использовать функцию [[#FieldNS]]. | ||
- | Второй вариант метода позволяет задать значение по умолчанию, которое будет применено, если значение, полученное из таблицы - NULL или пустая строка. 3-й и 4-й варианты аналогичны первым двум, но вместо DataRowView используется DataRow. Обычно первые два варианта применяются в Presentation, а вторые два - в Code Behind. | ||
- | |||
- | Пример использования в Presentation объекта типа Publishing Container с кодом по умолчанию: | ||
- | <code asp> | ||
- | <ItemTemplate> | ||
- | ... | ||
- | <%# Field(((DataRowView)(Container.DataItem)), "Title")%> | ||
- | ... | ||
- | </ItemTemplate> | ||
- | </code> | ||
- | |||
- | Пример для Code Behind объекта типа Publishing Container: | ||
- | <code c#> | ||
- | protected void OnItemCreated(Object sender, RepeaterItemEventArgs e) { | ||
- | if ((e.Item.ItemType == ListItemType.Item) | (e.Item.ItemType == ListItemType.AlternatingItem)) { | ||
- | ... | ||
- | Field(Data.Rows[e.Item.ItemIndex], "Title"); | ||
- | ... | ||
- | } | ||
- | } | ||
- | |||
- | </code> | ||
- | |||
- | Метод Field можно применять не только в объектах типа Publishing Container, но и в других типах объектов. | ||
- | |||
- | ===== FieldNS ===== | ||
- | <code c#>string FieldNS(DataRowView pDataItem, string key)</code> | ||
- | <code c#>string FieldNS(DataRowView pDataItem, string key, string defaultvalue)</code> | ||
- | <code c#>string FieldNS(DataRow pDataItem, string key)</code> | ||
- | <code c#>string FieldNS(DataRow pDataItem, string key, string defaultvalue)</code> | ||
- | |||
- | Аналогично методу [[#Field]], но в режиме OnScreen не генерируется код для редактирования данного поля. Рекомендуется применять в случаях, когда вставка дополнительного кода может поломать верстку. | ||
- | |||
- | |||
- | ===== FormatField ===== | ||
- | <code c#>string FormatField(string key)</code> | ||
- | |||
- | Данный метод выполняет [[:edit:url_auto_replace|замену плейсхолдеров на URL]]. | ||
- | |||
- | Нужно применять данный метод при чтении из базы данных полей способом, отличным от двух перечисленных ниже: | ||
- | * Функция Field | ||
- | * Классы LINQ-To-SQL | ||
- | |||
- | |||
- | ===== OnScreenFlyEdit ===== | ||
- | |||
- | <code c#>string OnScreenFlyEdit(string Value, int ItemID, string FieldName)</code> | ||
- | Данный метод используется для того, чтобы получить функциональность [[:onscreen|режима OnScreen]] вне Publishing-контейнеров. Параметры метода включают в себя: | ||
- | * текст, который должен быть отредактирован | ||
- | * ID статьи | ||
- | * имя поля | ||
- | |||
- | ===== OnScreen ===== | ||
- | |||
- | <code c#>string OnScreen(string Value, int ItemID)</code> | ||
- | |||
- | Упрощенная версия метода [[#OnScreenFlyEdit]] method. C его помощью пользователь может отредактировать статью только в Form View, но не в режиме OnFly. | ||