------------------------------------Кодий C#---------------------------------
using система;
using System.Collections;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.QuickStart;
using Telerik.QuickStart.Grid;
using Telerik.WebControls;
namespace Telerik.GridExamplesCSharp.AJAX.EditOnDblClick
{
общественный абстрактный тип DefaultCS: XhtmlPage
{
Кодий формы стержня #region произведенное конструктором
OnInit защищенное преодолением автоматического действия пустое (EventArgs e)
{
//
// CODEGEN: Этот звонок необходим конструктором формы стержня ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// требовало метода для поддержки конструктора - не доработайте
/// содержание этого метода с редактором Кодего.
///
приватное пустое InitializeComponent ()
{
this.RadGrid1.NeedDataSource += новое Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += новое Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
это. Нагрузка += новое EventHandler (это. Page_Load);
}
#endregion
защищенное System.Web.UI.WebControls.Label Label1;
защищенное Telerik.WebControls.RadGrid RadGrid1;
защищенное пустое Page_Load (прислужник предмета, System.EventArgs e)
{
clientExecute шнура = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = ''; «, это. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
приватное свободное пространство RadGrid1_NeedDataSource (источник предмета, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
приватное DataTable OrderDetails
{
получите
{
если (это. Встреча [«OrderDetails»]! = null)
{
возвратите (DataTable) это. Встреча [«OrderDetails»];
}
DataTable res = DataSourceHelperCS.GetDataTable («ВЫБЕРИТЕ * ОТ [детали заказа] ");
это. Встреча [«OrderDetails»] = res;
возвращенный res;
}
}
защищенное свободное пространство RaisePostBackEvent преодоления автоматического действия (sourceControl IPostBackEventHandler, eventArgument шнура)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
если (sourceControl будет RadGrid), то
{
зашнуруйте [] postBackEventArgumentData = eventArgument.Split («: ");
переключатель (postBackEventArgumentData [0])
{
случай «редактирует»:
{
((RadGrid1.MasterTableView.Controls [0] как таблица). Рядки [int. Parse (postBackEventArgumentData [1])] как GridItem). Редактируйте = true;
RadGrid1.Rebind ();
пролом;
}
случай «уточнение»:
{
Деталь GridItem = ((RadGrid1.MasterTableView.Controls [0] как таблица). Рядки [int. Parse (postBackEventArgumentData [1])] как GridItem);
UpdateItem (деталь);
деталь. Редактируйте = ложно;
RadGrid1.Rebind ();
пролом;
}
}
}
}
приватное свободное пространство RadGrid1_ColumnCreated (прислужник предмета, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
если (e.Column будет GridBoundColumn), то
{
если ((e.Column как GridBoundColumn) == «OrderID», то .DataField || (e.Column как GridBoundColumn) == «ProductID» .DataField)
{
(e.Column как GridBoundColumn) .ReadOnly = true;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
еще
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
приватное пустое UpdateItem (деталь GridItem)
{
editedItem = деталь GridEditableItem как GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate измененный рядок в DataSource
changedRows DataRow [] = ordersTable.Select («OrderID =» + editedItem [«OrderID»]. Текст +» И «+» ProductID = «+ editedItem [«ProductID»]. Текст);
labelID шнура = это. Label1.ClientID;
clientExecute шнура = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «, labelID, "");
если (changedRows.Length! = 1)
{
clientExecute = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, «Unbale для того чтобы обнаружить местонахождение заказ для updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
возвращение;
}
значения //Update новые
newValues Hashtable = новый Hashtable ();
//The GridTableView заполнит значения от всех editable колонок в хэше
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow DataRow = changedRows [0];
changedRow.BeginEdit ();
попытка
{
foreach (вход DictionaryEntry в newValues)
{
changedRow [вход (шнура). Ключ] = вход. Значение;
}
changedRow.EndEdit ();
}
задвижка (исключение ex)
{
changedRow.CancelEdit ();
Режим //In AJAX это уточнит соответствуя текст ярлыка, клиент-сторону:
clientExecute = шнур. Форма («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, Server.HtmlEncode («неспособно для уточнения заказов. Причина: » + ex. Сообщение). Замените (««», «» ").Replace (» \ r \ n ", «
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
возвращение;
}
//Code для уточнения базы данных может пойти здесь…
clientExecute = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, «заказ» + changedRow [«OrderID»] +», ProductID «+ changedRow [«ProductID»] +» обновлено ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
------------------------------Кодий ASPX------------------------------
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>искусствоо " Assembly= " Telerik.QuickStart " %>
<> %>
<>«%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Вы можете хотеть позволить потребителю принудить деталь решетки внутри редактируете режим просто double-clicking соответственно деталь (легкий и интуитивный подход). Эта демонстрация иллюстрирует как переключить рядок внутри редактирует режим путем double-clicking деталь произвольной решетки и как уточнить этот рядок когда потребитель щелкает другим рядком в решетке. Furthermore, user-friendly подтверждает диалог будет показано для того чтобы пробудить должна ли деятельность быть распространена или не.
Звоноки польз RadGridClientObject.AjaxRequest примера () (связывающ проволокой случаи RowClick и RowDblClick) и случай onchange входных сигналов в рядках решетки используемых для редактировать (укротитель для случая onchange задан в укротителе RowCreated решетки).
Дополнительный редактировать наклоняет и tricks (например как выполнить уточнения серии) вы может найти в Как-к subchapter от раздел показателей вставки/уточнения/Delete в помощи продукта он-лайн:
Как-к
using система;
using System.Collections;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.QuickStart;
using Telerik.QuickStart.Grid;
using Telerik.WebControls;
namespace Telerik.GridExamplesCSharp.AJAX.EditOnDblClick
{
общественный абстрактный тип DefaultCS: XhtmlPage
{
Кодий формы стержня #region произведенное конструктором
OnInit защищенное преодолением автоматического действия пустое (EventArgs e)
{
//
// CODEGEN: Этот звонок необходим конструктором формы стержня ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// требовало метода для поддержки конструктора - не доработайте
/// содержание этого метода с редактором Кодего.
///
приватное пустое InitializeComponent ()
{
this.RadGrid1.NeedDataSource += новое Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += новое Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
это. Нагрузка += новое EventHandler (это. Page_Load);
}
#endregion
защищенное System.Web.UI.WebControls.Label Label1;
защищенное Telerik.WebControls.RadGrid RadGrid1;
защищенное пустое Page_Load (прислужник предмета, System.EventArgs e)
{
clientExecute шнура = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = ''; «, это. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
приватное свободное пространство RadGrid1_NeedDataSource (источник предмета, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
приватное DataTable OrderDetails
{
получите
{
если (это. Встреча [«OrderDetails»]! = null)
{
возвратите (DataTable) это. Встреча [«OrderDetails»];
}
DataTable res = DataSourceHelperCS.GetDataTable («ВЫБЕРИТЕ * ОТ [детали заказа] ");
это. Встреча [«OrderDetails»] = res;
возвращенный res;
}
}
защищенное свободное пространство RaisePostBackEvent преодоления автоматического действия (sourceControl IPostBackEventHandler, eventArgument шнура)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
если (sourceControl будет RadGrid), то
{
зашнуруйте [] postBackEventArgumentData = eventArgument.Split («: ");
переключатель (postBackEventArgumentData [0])
{
случай «редактирует»:
{
((RadGrid1.MasterTableView.Controls [0] как таблица). Рядки [int. Parse (postBackEventArgumentData [1])] как GridItem). Редактируйте = true;
RadGrid1.Rebind ();
пролом;
}
случай «уточнение»:
{
Деталь GridItem = ((RadGrid1.MasterTableView.Controls [0] как таблица). Рядки [int. Parse (postBackEventArgumentData [1])] как GridItem);
UpdateItem (деталь);
деталь. Редактируйте = ложно;
RadGrid1.Rebind ();
пролом;
}
}
}
}
приватное свободное пространство RadGrid1_ColumnCreated (прислужник предмета, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
если (e.Column будет GridBoundColumn), то
{
если ((e.Column как GridBoundColumn) == «OrderID», то .DataField || (e.Column как GridBoundColumn) == «ProductID» .DataField)
{
(e.Column как GridBoundColumn) .ReadOnly = true;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
еще
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
приватное пустое UpdateItem (деталь GridItem)
{
editedItem = деталь GridEditableItem как GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate измененный рядок в DataSource
changedRows DataRow [] = ordersTable.Select («OrderID =» + editedItem [«OrderID»]. Текст +» И «+» ProductID = «+ editedItem [«ProductID»]. Текст);
labelID шнура = это. Label1.ClientID;
clientExecute шнура = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «, labelID, "");
если (changedRows.Length! = 1)
{
clientExecute = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, «Unbale для того чтобы обнаружить местонахождение заказ для updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
возвращение;
}
значения //Update новые
newValues Hashtable = новый Hashtable ();
//The GridTableView заполнит значения от всех editable колонок в хэше
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow DataRow = changedRows [0];
changedRow.BeginEdit ();
попытка
{
foreach (вход DictionaryEntry в newValues)
{
changedRow [вход (шнура). Ключ] = вход. Значение;
}
changedRow.EndEdit ();
}
задвижка (исключение ex)
{
changedRow.CancelEdit ();
Режим //In AJAX это уточнит соответствуя текст ярлыка, клиент-сторону:
clientExecute = шнур. Форма («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, Server.HtmlEncode («неспособно для уточнения заказов. Причина: » + ex. Сообщение). Замените (««», «» ").Replace (» \ r \ n ", «
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
возвращение;
}
//Code для уточнения базы данных может пойти здесь…
clientExecute = шнур. Форматируйте («document.getElementById («{0} ").innerHTML = «{1}»; «,
labelID, «заказ» + changedRow [«OrderID»] +», ProductID «+ changedRow [«ProductID»] +» обновлено ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>искусствоо " Assembly= " Telerik.QuickStart " %>
<> %>
<>«%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Понадейтесь эта помощь