------------------------------------Кодий 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>
Понадейтесь эта помощь
|