------------------------------------Código de C#---------------------------------
usar sistema;
usar System.Collections;
usar System.Data;
usar System.Web.UI;
usar System.Web.UI.WebControls;
usar Telerik.QuickStart;
usar Telerik.QuickStart.Grid;
usar Telerik.WebControls;
namespace Telerik.GridExamplesCSharp.AJAX.EditOnDblClick
{
clase abstracta pública DefaultCS: XhtmlPage
{
Código generado diseñador de la forma del Web del #region
OnInit vacío protegido invalidación (EventArgs e)
{
//
// CODEGEN: Esta llamada es requerida por el diseñador de la forma del Web de ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// requirió el método para la ayuda del diseñador - no modificarse
/// el contenido de este método con el redactor del código.
///
InitializeComponent vacío privado ()
{
this.RadGrid1.NeedDataSource += nuevo Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nuevo Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
esto. Carga += nuevo EventHandler (éste. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protegido Label1;
Telerik.WebControls.RadGrid protegido RadGrid1;
Page_Load vacío protegido (remitente del objeto, System.EventArgs e)
{
clientExecute de la secuencia = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = ''; “, esto. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vacío privado RadGrid1_NeedDataSource (fuente del objeto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable privado OrderDetails
{
conseguir
{
si (esto. ¡Sesión [“OrderDetails”]! = falta de información)
{
volver (DataTable) esto. Sesión [“OrderDetails”];
}
DataTable res = DataSourceHelperCS.GetDataTable (“SELECCIONAR * DE [los detalles de la orden] ");
esto. Sesión [“OrderDetails”] = res;
res de vuelta;
}
}
vacío protegido RaisePostBackEvent (sourceControl de IPostBackEventHandler, eventArgument de la invalidación de la secuencia)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
si (el sourceControl es RadGrid)
{
encadenar [] el postBackEventArgumentData = eventArgument.Split (“: ");
interruptor (postBackEventArgumentData [0])
{
el caso “corrige”:
{
((RadGrid1.MasterTableView.Controls [0] como tabla). Filas [internacional. Analizar (postBackEventArgumentData [1])] como GridItem). Corregir = verdad;
RadGrid1.Rebind ();
rotura;
}
caso “actualización”:
{
Artículo de GridItem = ((RadGrid1.MasterTableView.Controls [0] como tabla). Filas [internacional. Analizar (postBackEventArgumentData [1])] como GridItem);
UpdateItem (artículo);
artículo. Corregir = falso;
RadGrid1.Rebind ();
rotura;
}
}
}
}
vacío privado RadGrid1_ColumnCreated (remitente del objeto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
si (e.Column es GridBoundColumn)
{
si ((e.Column como GridBoundColumn) == “OrderID” de .DataField || (e.Column como GridBoundColumn) == “ProductID” de .DataField)
{
(e.Column como GridBoundColumn) .ReadOnly = verdad;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vacío privado (artículo de GridItem)
{
editedItem = artículo de GridEditableItem como GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate la fila cambiada en el DataSource
changedRows de DataRow [] = ordersTable.Select (“OrderID =” + editedItem [“OrderID”]. Texto +” Y “+” ProductID = “+ editedItem [“ProductID”]. Texto);
labelID de la secuencia = esto. Label1.ClientID;
clientExecute de la secuencia = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “, labelID, "");
¡si (changedRows.Length! = 1)
{
clientExecute = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “Unbale para localizar la orden para updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
vuelta;
}
nuevos valores de //Update
newValues de la tabla de elección arbitraria = nueva tabla de elección arbitraria ();
//The GridTableView llenará los valores de todas las columnas editable en el picadillo
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow de DataRow = changedRows [0];
changedRow.BeginEdit ();
intento
{
foreach (entrada de la entrada de diccionario en newValues)
{
changedRow [entrada (de la secuencia). Llave] = entrada. Valor;
}
changedRow.EndEdit ();
}
retén (excepción ex)
{
changedRow.CancelEdit ();
El modo de //In AJAX esto pondrá al día el texto correspondiente de la etiqueta, cliente-lado:
clientExecute = secuencia. Formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, Server.HtmlEncode (“incapaz de poner al día órdenes. Razón: ” + ex. Mensaje). Substituir (““”, “” ").Replace (” \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
vuelta;
}
//Code para poner al día la base de datos puede ir aquí…
clientExecute = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
el labelID, “orden” + changedRow [“OrderID”] +”, ProductID “+ changedRow [“ProductID”] +” se puso al día ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
------------------------------Código de ASPX------------------------------
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>arte " Assembly= " Telerik.QuickStart " %>
<> %>
<>“%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Usted puede querer permitir que el usuario fuerce el artículo de la rejilla adentro corrige modo simplemente double-clicking el artículo respectivo (un acercamiento fácil e intuitivo). Esta versión parcial de programa ilustra cómo cambiar una fila adentro corrige modo double-clicking un artículo de la rejilla arbitraria y cómo poner al día esta fila cuando el usuario chasca otra fila en la rejilla. Además, un de uso fácil confirma diálogo será exhibida para incitar si la operación se debe propagar o no.
Las llamadas de las aplicaciones RadGridClientObject.AjaxRequest del ejemplo () (atando con alambre los acontecimientos de RowClick y de RowDblClick) y el acontecimiento del onchange de las entradas en las filas de la rejilla usadas para corregir (asignan el tratante para el acontecimiento del onchange en el tratante de RowCreated de la rejilla).
El corregir adicional le inclina y trampea (por ejemplo cómo realizar actualizaciones de la hornada) puede encontrar en Cómo-a subcapítulo sección de los expedientes del parte movible/de la actualización/de la cancelación en la ayuda en línea del producto:
Cómo-a
usar sistema;
usar System.Collections;
usar System.Data;
usar System.Web.UI;
usar System.Web.UI.WebControls;
usar Telerik.QuickStart;
usar Telerik.QuickStart.Grid;
usar Telerik.WebControls;
namespace Telerik.GridExamplesCSharp.AJAX.EditOnDblClick
{
clase abstracta pública DefaultCS: XhtmlPage
{
Código generado diseñador de la forma del Web del #region
OnInit vacío protegido invalidación (EventArgs e)
{
//
// CODEGEN: Esta llamada es requerida por el diseñador de la forma del Web de ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// requirió el método para la ayuda del diseñador - no modificarse
/// el contenido de este método con el redactor del código.
///
InitializeComponent vacío privado ()
{
this.RadGrid1.NeedDataSource += nuevo Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nuevo Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
esto. Carga += nuevo EventHandler (éste. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protegido Label1;
Telerik.WebControls.RadGrid protegido RadGrid1;
Page_Load vacío protegido (remitente del objeto, System.EventArgs e)
{
clientExecute de la secuencia = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = ''; “, esto. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vacío privado RadGrid1_NeedDataSource (fuente del objeto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable privado OrderDetails
{
conseguir
{
si (esto. ¡Sesión [“OrderDetails”]! = falta de información)
{
volver (DataTable) esto. Sesión [“OrderDetails”];
}
DataTable res = DataSourceHelperCS.GetDataTable (“SELECCIONAR * DE [los detalles de la orden] ");
esto. Sesión [“OrderDetails”] = res;
res de vuelta;
}
}
vacío protegido RaisePostBackEvent (sourceControl de IPostBackEventHandler, eventArgument de la invalidación de la secuencia)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
si (el sourceControl es RadGrid)
{
encadenar [] el postBackEventArgumentData = eventArgument.Split (“: ");
interruptor (postBackEventArgumentData [0])
{
el caso “corrige”:
{
((RadGrid1.MasterTableView.Controls [0] como tabla). Filas [internacional. Analizar (postBackEventArgumentData [1])] como GridItem). Corregir = verdad;
RadGrid1.Rebind ();
rotura;
}
caso “actualización”:
{
Artículo de GridItem = ((RadGrid1.MasterTableView.Controls [0] como tabla). Filas [internacional. Analizar (postBackEventArgumentData [1])] como GridItem);
UpdateItem (artículo);
artículo. Corregir = falso;
RadGrid1.Rebind ();
rotura;
}
}
}
}
vacío privado RadGrid1_ColumnCreated (remitente del objeto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
si (e.Column es GridBoundColumn)
{
si ((e.Column como GridBoundColumn) == “OrderID” de .DataField || (e.Column como GridBoundColumn) == “ProductID” de .DataField)
{
(e.Column como GridBoundColumn) .ReadOnly = verdad;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vacío privado (artículo de GridItem)
{
editedItem = artículo de GridEditableItem como GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate la fila cambiada en el DataSource
changedRows de DataRow [] = ordersTable.Select (“OrderID =” + editedItem [“OrderID”]. Texto +” Y “+” ProductID = “+ editedItem [“ProductID”]. Texto);
labelID de la secuencia = esto. Label1.ClientID;
clientExecute de la secuencia = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “, labelID, "");
¡si (changedRows.Length! = 1)
{
clientExecute = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “Unbale para localizar la orden para updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
vuelta;
}
nuevos valores de //Update
newValues de la tabla de elección arbitraria = nueva tabla de elección arbitraria ();
//The GridTableView llenará los valores de todas las columnas editable en el picadillo
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow de DataRow = changedRows [0];
changedRow.BeginEdit ();
intento
{
foreach (entrada de la entrada de diccionario en newValues)
{
changedRow [entrada (de la secuencia). Llave] = entrada. Valor;
}
changedRow.EndEdit ();
}
retén (excepción ex)
{
changedRow.CancelEdit ();
El modo de //In AJAX esto pondrá al día el texto correspondiente de la etiqueta, cliente-lado:
clientExecute = secuencia. Formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, Server.HtmlEncode (“incapaz de poner al día órdenes. Razón: ” + ex. Mensaje). Substituir (““”, “” ").Replace (” \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
vuelta;
}
//Code para poner al día la base de datos puede ir aquí…
clientExecute = secuencia. Dar formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
el labelID, “orden” + changedRow [“OrderID”] +”, ProductID “+ changedRow [“ProductID”] +” se puso al día ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>arte " Assembly= " Telerik.QuickStart " %>
<> %>
<>“%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Esperar esta ayuda