------------------------------------Codice di C#---------------------------------
using il 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
{
codice categoria astratto pubblico DefaultCS: XhtmlPage
{
Codice generato progettista della forma di fotoricettore di #region
OnInit vuoto protettivo provvigione supplementare (EventArgs e)
{
//
// CODEGEN: Questa chiamata è richiesta dal progettista della forma di fotoricettore di ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// ha richiesto il metodo per il supporto del progettista - non modificare
/// il contenuto di questo metodo con il redattore di codice.
///
InitializeComponent vuoto riservato ()
{
this.RadGrid1.NeedDataSource += nuovo Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nuovo Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
ciò. Carico += nuovo EventHandler (questo. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protettivo Label1;
Telerik.WebControls.RadGrid protettivo RadGrid1;
Page_Load vuoto protettivo (mittente dell'oggetto, System.EventArgs e)
{
clientExecute della stringa = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = ''; “, questo. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vuoto riservato RadGrid1_NeedDataSource (fonte dell'oggetto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable riservato OrderDetails
{
ottenere
{
se (questo. Sessione [“OrderDetails„]! = posizione di segnale minimo)
{
restituire (DataTable) questo. Sessione [“OrderDetails„];
}
DataTable ricerca = DataSourceHelperCS.GetDataTable (“SELEZIONARE * A PARTIRE [particolari di ordine] ");
ciò. Sessione [“OrderDetails„] = ricerca;
ricerca di ritorno;
}
}
vuoto protettivo RaisePostBackEvent (sourceControl di IPostBackEventHandler, eventArgument della provvigione supplementare della stringa)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
se (sourceControl è RadGrid)
{
mettere insieme [] il postBackEventArgumentData = eventArgument.Split (“: ");
interruttore (postBackEventArgumentData [0])
{
il caso “pubblica„:
{
((RadGrid1.MasterTableView.Controls [0] come Tabella). File [int. Analizzare (postBackEventArgumentData [1])] come GridItem). Pubblicare = allineare;
RadGrid1.Rebind ();
rottura;
}
caso “aggiornamento„:
{
Articolo di GridItem = ((RadGrid1.MasterTableView.Controls [0] come Tabella). File [int. Analizzare (postBackEventArgumentData [1])] come GridItem);
UpdateItem (articolo);
articolo. Pubblicare = falso;
RadGrid1.Rebind ();
rottura;
}
}
}
}
vuoto riservato RadGrid1_ColumnCreated (mittente dell'oggetto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
se (e.Column è GridBoundColumn)
{
se ((e.Column come GridBoundColumn) == “OrderID„ di .DataField || (e.Column come GridBoundColumn) == “ProductID„ di .DataField)
{
(e.Column come GridBoundColumn) .ReadOnly = allineano;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
altrimenti
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vuoto riservato (articolo di GridItem)
{
editedItem = articolo di GridEditableItem come GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate la fila variabile nel DataSource
changedRows di DataRow [] = ordersTable.Select (“OrderID =„ + editedItem [“OrderID„]. Testo +„ E “+„ ProductID = “+ editedItem [“ProductID„]. Testo);
labelID della stringa = questo. Label1.ClientID;
clientExecute della stringa = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “, labelID, "");
se (changedRows.Length! = 1)
{
clientExecute = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
labelID, “Unbale per individuare l'ordine per updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
ritorno;
}
nuovi valori di //Update
newValues del Hashtable = nuovo Hashtable ();
//The GridTableView riempirà i valori da tutte le colonne editable nel hash
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow di DataRow = changedRows [0];
changedRow.BeginEdit ();
prova
{
foreach (entrata dell'entrata dizionario nei newValues)
{
changedRow [entrata (della stringa). Chiave] = entrata. Valore;
}
changedRow.EndEdit ();
}
fermo (eccezione ex)
{
changedRow.CancelEdit ();
Il modo di //In AJAX questo aggiornerà il testo corrispondente dell'etichetta, cliente-lato:
clientExecute = stringa. Disposizione (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
labelID, Server.HtmlEncode (“incapace di aggiornare gli ordini. Motivo: „ + ex. Messaggio). Sostituire (““„, “„ ").Replace („ \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
ritorno;
}
//Code per l'aggiornamento della base di dati può andare qui…
clientExecute = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
il labelID, “ordine„ + changedRow [“OrderID„] +„, ProductID “+ changedRow [“ProductID„] +„ ha aggiornato ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
------------------------------Codice di 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>
Potete volere permettere che l'utente forzi l'articolo di griglia dentro pubblicate il modo semplicemente double-clicking il rispettivo articolo (un metodo facile ed intuitivo). Questa dimostrazione illustra come commutare una fila dentro pubblica il modo double-clicking un articolo di griglia arbitraria e come aggiornare questa fila quando l'utente scatta un'altra fila nella griglia. Ancora, un facile da usare conferma il dialogo sarà visualizzato per richiamare se il funzionamento dovrebbe essere propagato oppure no.
Le chiamate di usi RadGridClientObject.AjaxRequest di esempio () (fissando gli eventi di RowDblClick e di RowClick) e l'evento del onchange degli input nelle file di griglia usate per la pubblicazione (l'alimentatore per l'evento del onchange è assegnato nell'alimentatore di RowCreated della griglia).
La pubblicazione supplementare lo capovolge ed inganna (per esempio come effettuare gli aggiornamenti in lotti) può trovare in Come-al sottocapitolo sezione dalle annotazioni dell'inserto/aggiornamento/cancellazione nell'aiuto in linea del prodotto:
Come-a
using il 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
{
codice categoria astratto pubblico DefaultCS: XhtmlPage
{
Codice generato progettista della forma di fotoricettore di #region
OnInit vuoto protettivo provvigione supplementare (EventArgs e)
{
//
// CODEGEN: Questa chiamata è richiesta dal progettista della forma di fotoricettore di ASP.NET.
//
InitializeComponent ();
base.OnInit (e);
}
/// ha richiesto il metodo per il supporto del progettista - non modificare
/// il contenuto di questo metodo con il redattore di codice.
///
InitializeComponent vuoto riservato ()
{
this.RadGrid1.NeedDataSource += nuovo Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nuovo Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
ciò. Carico += nuovo EventHandler (questo. Page_Load);
}
#endregion
System.Web.UI.WebControls.Label protettivo Label1;
Telerik.WebControls.RadGrid protettivo RadGrid1;
Page_Load vuoto protettivo (mittente dell'oggetto, System.EventArgs e)
{
clientExecute della stringa = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = ''; “, questo. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
vuoto riservato RadGrid1_NeedDataSource (fonte dell'oggetto, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
DataTable riservato OrderDetails
{
ottenere
{
se (questo. Sessione [“OrderDetails„]! = posizione di segnale minimo)
{
restituire (DataTable) questo. Sessione [“OrderDetails„];
}
DataTable ricerca = DataSourceHelperCS.GetDataTable (“SELEZIONARE * A PARTIRE [particolari di ordine] ");
ciò. Sessione [“OrderDetails„] = ricerca;
ricerca di ritorno;
}
}
vuoto protettivo RaisePostBackEvent (sourceControl di IPostBackEventHandler, eventArgument della provvigione supplementare della stringa)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
se (sourceControl è RadGrid)
{
mettere insieme [] il postBackEventArgumentData = eventArgument.Split (“: ");
interruttore (postBackEventArgumentData [0])
{
il caso “pubblica„:
{
((RadGrid1.MasterTableView.Controls [0] come Tabella). File [int. Analizzare (postBackEventArgumentData [1])] come GridItem). Pubblicare = allineare;
RadGrid1.Rebind ();
rottura;
}
caso “aggiornamento„:
{
Articolo di GridItem = ((RadGrid1.MasterTableView.Controls [0] come Tabella). File [int. Analizzare (postBackEventArgumentData [1])] come GridItem);
UpdateItem (articolo);
articolo. Pubblicare = falso;
RadGrid1.Rebind ();
rottura;
}
}
}
}
vuoto riservato RadGrid1_ColumnCreated (mittente dell'oggetto, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
se (e.Column è GridBoundColumn)
{
se ((e.Column come GridBoundColumn) == “OrderID„ di .DataField || (e.Column come GridBoundColumn) == “ProductID„ di .DataField)
{
(e.Column come GridBoundColumn) .ReadOnly = allineano;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
altrimenti
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
UpdateItem vuoto riservato (articolo di GridItem)
{
editedItem = articolo di GridEditableItem come GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate la fila variabile nel DataSource
changedRows di DataRow [] = ordersTable.Select (“OrderID =„ + editedItem [“OrderID„]. Testo +„ E “+„ ProductID = “+ editedItem [“ProductID„]. Testo);
labelID della stringa = questo. Label1.ClientID;
clientExecute della stringa = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “, labelID, "");
se (changedRows.Length! = 1)
{
clientExecute = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
labelID, “Unbale per individuare l'ordine per updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
ritorno;
}
nuovi valori di //Update
newValues del Hashtable = nuovo Hashtable ();
//The GridTableView riempirà i valori da tutte le colonne editable nel hash
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
changedRow di DataRow = changedRows [0];
changedRow.BeginEdit ();
prova
{
foreach (entrata dell'entrata dizionario nei newValues)
{
changedRow [entrata (della stringa). Chiave] = entrata. Valore;
}
changedRow.EndEdit ();
}
fermo (eccezione ex)
{
changedRow.CancelEdit ();
Il modo di //In AJAX questo aggiornerà il testo corrispondente dell'etichetta, cliente-lato:
clientExecute = stringa. Disposizione (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
labelID, Server.HtmlEncode (“incapace di aggiornare gli ordini. Motivo: „ + ex. Messaggio). Sostituire (““„, “„ ").Replace („ \ r \ n ", “
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
ritorno;
}
//Code per l'aggiornamento della base di dati può andare qui…
clientExecute = stringa. Formattare (“document.getElementById (“{0} ").innerHTML = “{1}„; “,
il labelID, “ordine„ + changedRow [“OrderID„] +„, ProductID “+ changedRow [“ProductID„] +„ ha aggiornato ");
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>
Sperare questo aiuto