------------------------------------Código de C#---------------------------------
using o sistema;
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
{
classe abstrata pública DefaultCS: XhtmlPage
{
Código gerado desenhador do formulário da correia fotorreceptora do #region
OnInit vago protegido ultrapassagem (EventArgs e)
{
//
// CODEGEN: Esta chamada é exigida pelo desenhador do formulário da correia fotorreceptora de ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// exigiu o método para a sustentação do desenhador - não modificar
/// os índices deste método com o editor do código.
///
InitializeComponent vago confidencial ()
{
this.RadGrid1.NeedDataSource += Telerik.WebControls.GridNeedDataSourceEventHandler novo (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += Telerik.WebControls.GridColumnCreatedEventHandler novo (this.RadGrid1_ColumnCreated);
isto. Carga += EventHandler novo (este. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protegido Label1;
Telerik.WebControls.RadGrid protegido RadGrid1;
Page_Load vago protegido (remetente do objeto, System.EventArgs e)
{
clientExecute da corda = corda. Formatar (“document.getElementById (“{0} ").innerHTML = ''; “, isto. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vácuo confidencial RadGrid1_NeedDataSource (fonte do objeto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable confidencial OrderDetails
{
começ
{
se (isto. Sessão [“OrderDetails”]! = zero)
{
retornar (DataTable) isto. Sessão [“OrderDetails”];
}
DataTable res = DataSourceHelperCS.GetDataTable (“SELECIONAR * DE [detalhes da ordem] ");
isto. Sessão [“OrderDetails”] = res;
res do retorno;
}
}
vácuo protegido RaisePostBackEvent da ultrapassagem (sourceControl de IPostBackEventHandler, eventArgument da corda)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
se (o sourceControl é RadGrid)
{
amarrar [] o postBackEventArgumentData = o eventArgument.Split (“: ");
interruptor (postBackEventArgumentData [0])
{
o caso “edita”:
{
((RadGrid1.MasterTableView.Controls [0] como a tabela). Fileiras [int. Analisar gramaticalmente (postBackEventArgumentData [1])] como GridItem). Editar = retificar;
RadGrid1.Rebind ();
ruptura;
}
caso “atualização”:
{
Artigo de GridItem = ((RadGrid1.MasterTableView.Controls [0] como a tabela). Fileiras [int. Analisar gramaticalmente (postBackEventArgumentData [1])] como GridItem);
UpdateItem (artigo);
artigo. Editar = falso;
RadGrid1.Rebind ();
ruptura;
}
}
}
}
vácuo confidencial RadGrid1_ColumnCreated (remetente do objeto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
se (e.Column é GridBoundColumn)
{
se ((e.Column como GridBoundColumn) == “OrderID” de .DataField || (e.Column como GridBoundColumn) == “ProductID” de .DataField)
{
(e.Column como GridBoundColumn) .ReadOnly = retificam;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
mais
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vago confidencial (artigo de GridItem)
{
editedItem = artigo de GridEditableItem como GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate a fileira mudada na origem de dados
changedRows de DataRow [] = ordersTable.Select (“OrderID =” + editedItem [“OrderID”]. Texto +” E “+” ProductID = “+ editedItem [“ProductID”]. Texto);
labelID da corda = isto. Label1.ClientID;
clientExecute da corda = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “, labelID, "");
se (changedRows.Length! = 1)
{
clientExecute = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “Unbale para encontrar a ordem para updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
retorno;
}
valores novos de //Update
newValues do Hashtable = Hashtable novo ();
//The GridTableView encherá os valores de todas as colunas editable na mistura
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow de DataRow = changedRows [0];
changedRow.BeginEdit ();
tentativa
{
foreach (entrada da entrada no dicionário nos newValues)
{
changedRow [entrada (da corda). Chave] = entrada. Valor;
}
changedRow.EndEdit ();
}
prendedor (exceção ex)
{
changedRow.CancelEdit ();
A modalidade de //In AJAX isto atualizará o texto correspondente da etiqueta, cliente-lado:
clientExecute = corda. Formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, Server.HtmlEncode (“incapaz de atualizar ordens. Razão: ” + ex. Mensagem). Substituir (““”, “” ").Replace (” \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
retorno;
}
//Code para atualizar a base de dados pode ir aqui…
clientExecute = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “ordem” + changedRow [“OrderID”] +”, ProductID “+ changedRow [“ProductID”] +” atualizado ");
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>
Você pode querer permitir que o usuário force o artigo da grade edita dentro a modalidade simplesmente double-clicking o artigo respetivo (uma aproximação fácil e intuitiva). Este programa demonstrativo ilustra como comutar uma fileira edita dentro a modalidade double-clicking um artigo da grade arbitrária e como atualizar esta fileira quando o usuário estala uma outra fileira na grade. Além disso, um user-friendly confirma o diálogo será indicado para alertar se a operação deve ser propagada ou não.
As chamadas dos usos RadGridClientObject.AjaxRequest do exemplo () (prendendo os eventos de RowClick e de RowDblClick) e o evento do onchange das entradas nas fileiras da grade usadas editando (o alimentador para o evento do onchange é atribuído no alimentador de RowCreated da grade).
A edição adicional derruba-o e engana- (por exemplo como executar atualizações do grupo) pode encontrar no Como-ao subchapter seção dos registros da inserção/atualização/supressão na ajuda em linha do produto:
Como-a
using o sistema;
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
{
classe abstrata pública DefaultCS: XhtmlPage
{
Código gerado desenhador do formulário da correia fotorreceptora do #region
OnInit vago protegido ultrapassagem (EventArgs e)
{
//
// CODEGEN: Esta chamada é exigida pelo desenhador do formulário da correia fotorreceptora de ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// exigiu o método para a sustentação do desenhador - não modificar
/// os índices deste método com o editor do código.
///
InitializeComponent vago confidencial ()
{
this.RadGrid1.NeedDataSource += Telerik.WebControls.GridNeedDataSourceEventHandler novo (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += Telerik.WebControls.GridColumnCreatedEventHandler novo (this.RadGrid1_ColumnCreated);
isto. Carga += EventHandler novo (este. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protegido Label1;
Telerik.WebControls.RadGrid protegido RadGrid1;
Page_Load vago protegido (remetente do objeto, System.EventArgs e)
{
clientExecute da corda = corda. Formatar (“document.getElementById (“{0} ").innerHTML = ''; “, isto. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vácuo confidencial RadGrid1_NeedDataSource (fonte do objeto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable confidencial OrderDetails
{
começ
{
se (isto. Sessão [“OrderDetails”]! = zero)
{
retornar (DataTable) isto. Sessão [“OrderDetails”];
}
DataTable res = DataSourceHelperCS.GetDataTable (“SELECIONAR * DE [detalhes da ordem] ");
isto. Sessão [“OrderDetails”] = res;
res do retorno;
}
}
vácuo protegido RaisePostBackEvent da ultrapassagem (sourceControl de IPostBackEventHandler, eventArgument da corda)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
se (o sourceControl é RadGrid)
{
amarrar [] o postBackEventArgumentData = o eventArgument.Split (“: ");
interruptor (postBackEventArgumentData [0])
{
o caso “edita”:
{
((RadGrid1.MasterTableView.Controls [0] como a tabela). Fileiras [int. Analisar gramaticalmente (postBackEventArgumentData [1])] como GridItem). Editar = retificar;
RadGrid1.Rebind ();
ruptura;
}
caso “atualização”:
{
Artigo de GridItem = ((RadGrid1.MasterTableView.Controls [0] como a tabela). Fileiras [int. Analisar gramaticalmente (postBackEventArgumentData [1])] como GridItem);
UpdateItem (artigo);
artigo. Editar = falso;
RadGrid1.Rebind ();
ruptura;
}
}
}
}
vácuo confidencial RadGrid1_ColumnCreated (remetente do objeto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
se (e.Column é GridBoundColumn)
{
se ((e.Column como GridBoundColumn) == “OrderID” de .DataField || (e.Column como GridBoundColumn) == “ProductID” de .DataField)
{
(e.Column como GridBoundColumn) .ReadOnly = retificam;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
mais
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vago confidencial (artigo de GridItem)
{
editedItem = artigo de GridEditableItem como GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate a fileira mudada na origem de dados
changedRows de DataRow [] = ordersTable.Select (“OrderID =” + editedItem [“OrderID”]. Texto +” E “+” ProductID = “+ editedItem [“ProductID”]. Texto);
labelID da corda = isto. Label1.ClientID;
clientExecute da corda = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “, labelID, "");
se (changedRows.Length! = 1)
{
clientExecute = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “Unbale para encontrar a ordem para updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
retorno;
}
valores novos de //Update
newValues do Hashtable = Hashtable novo ();
//The GridTableView encherá os valores de todas as colunas editable na mistura
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow de DataRow = changedRows [0];
changedRow.BeginEdit ();
tentativa
{
foreach (entrada da entrada no dicionário nos newValues)
{
changedRow [entrada (da corda). Chave] = entrada. Valor;
}
changedRow.EndEdit ();
}
prendedor (exceção ex)
{
changedRow.CancelEdit ();
A modalidade de //In AJAX isto atualizará o texto correspondente da etiqueta, cliente-lado:
clientExecute = corda. Formato (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, Server.HtmlEncode (“incapaz de atualizar ordens. Razão: ” + ex. Mensagem). Substituir (““”, “” ").Replace (” \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
retorno;
}
//Code para atualizar a base de dados pode ir aqui…
clientExecute = corda. Formatar (“document.getElementById (“{0} ").innerHTML = “{1}”; “,
labelID, “ordem” + changedRow [“OrderID”] +”, ProductID “+ changedRow [“ProductID”] +” atualizado ");
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 ajuda