User Tools

Site Tools


api:field

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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. 
  
api/field.1258803624.txt.gz · Last modified: 2009/11/21 14:40 by celutp