------------------------------------Code de C#---------------------------------
using le système ;
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 abstraite publique DefaultCS : XhtmlPage
{
Code produit par concepteur de forme de Web de #region
OnInit vide protégé par dépassement (EventArgs e)
{
//
// CODEGEN : Cet appel est exigé par le concepteur de forme de Web d'ASP.NET.
//
InitializeComponent () ;
base.OnInit (e) ;
}
/// a exigé la méthode pour l'appui de concepteur - ne pas modifier
/// le contenu de cette méthode avec le rédacteur de code.
///
InitializeComponent vide privé ()
{
this.RadGrid1.NeedDataSource += nouveau Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource) ;
this.RadGrid1.ColumnCreated += nouveau Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated) ;
ceci. Charge += nouvel EventHandler (ceci. Page_Load) ;
}
#endregion
System.Web.UI.WebControls.Label protégé Label1 ;
Telerik.WebControls.RadGrid protégé RadGrid1 ;
Page_Load vide protégé (expéditeur d'objet, System.EventArgs e)
{
clientExecute de corde = corde. Composer (« document.getElementById (« {0} ").innerHTML = '' ; « , ceci. Label1.ClientID) ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
}
vide privé RadGrid1_NeedDataSource (source d'objet, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails ;
}
DataTable privé OrderDetails
{
obtenir
{
si (ceci. Session [« OrderDetails »] ! = nulle)
{
renvoyer (DataTable) ceci. Session [« OrderDetails »] ;
}
DataTable recherche = DataSourceHelperCS.GetDataTable (« CHOISIR * À PARTIR [des détails d'ordre] ") ;
ceci. Session [« OrderDetails »] = recherche ;
recherche de retour ;
}
}
vide protégé RaisePostBackEvent (sourceControl d'IPostBackEventHandler, eventArgument de priorité de corde)
{
base.RaisePostBackEvent (sourceControl, eventArgument) ;
si (le sourceControl est RadGrid)
{
ficeler [] le postBackEventArgumentData = l'eventArgument.Split (« : ") ;
commutateur (postBackEventArgumentData [0])
{
le cas « éditent » :
{
((RadGrid1.MasterTableView.Controls [0] comme Tableau). Rangées [international. Analyser (postBackEventArgumentData [1])] comme GridItem). Éditer = rectifier ;
RadGrid1.Rebind () ;
coupure ;
}
cas « mise à jour » :
{
Article de GridItem = ((RadGrid1.MasterTableView.Controls [0] comme Tableau). Rangées [international. Analyser (postBackEventArgumentData [1])] comme GridItem) ;
UpdateItem (article) ;
article. Éditer = faux ;
RadGrid1.Rebind () ;
coupure ;
}
}
}
}
vide privé RadGrid1_ColumnCreated (expéditeur d'objet, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
si (e.Column est GridBoundColumn)
{
si ((e.Column comme GridBoundColumn) == « OrderID » de .DataField || (e.Column comme GridBoundColumn) == « identité de produit » de .DataField)
{
(e.Column comme GridBoundColumn) .ReadOnly = rectifient ;
e.Column.HeaderStyle.Width = Unit.Pixel (60) ;
}
autrement
{
e.Column.HeaderStyle.Width = Unit.Pixel (150) ;
}
}
}
UpdateItem vide privé (article de GridItem)
{
editedItem = article de GridEditableItem comme GridEditableItem ;
DataTable ordersTable = this.OrderDetails ;
//Locate la rangée changée dans le point d'émission
changedRows de DataRow [] = ordersTable.Select (« OrderID = » + editedItem [« OrderID »]. Texte + » ET « + » identité de produit = « + editedItem [« identité de produit »]. Texte) ;
labelID de corde = ceci. Label1.ClientID ;
clientExecute de corde = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « , labelID, "") ;
si (changedRows.Length ! = 1)
{
clientExecute = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
labelID, « Unbale pour localiser la commande pour updating.") ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
retour ;
}
nouvelles valeurs de //Update
newValues de table de brouillage = nouvelle table de brouillage () ;
//The GridTableView remplira valeurs à partir de toutes les colonnes editable dans le gâchis
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem) ;
changedRow de DataRow = changedRows [0] ;
changedRow.BeginEdit () ;
essai
{
foreach (entrée d'entrée dictionnaire dans les newValues)
{
changedRow [entrée (de corde). Clef] = entrée. Valeur ;
}
changedRow.EndEdit () ;
}
crochet (exception ex)
{
changedRow.CancelEdit () ;
Le mode de //In AJAX ceci mettra à jour le texte correspondant d'étiquette, client-côté :
clientExecute = corde. Format (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
labelID, Server.HtmlEncode (« incapable de mettre à jour des ordres. Raison : » + ex. Message). Remplacer (« « », « » ").Replace ( » \ r \ n ", «
")) ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
retour ;
}
//Code pour mettre à jour la base de données peut aller ici…
clientExecute = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
le labelID, « ordre » + changedRow [« OrderID »] + », identité de produit « + changedRow [« identité de produit »] + » a mis à jour ") ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
}
}
}
------------------------------Code d'ASPX------------------------------
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>art " Assembly= " Telerik.QuickStart " %>
<> %>
<>« %>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Vous pouvez vouloir permettre à l'utilisateur de forcer l'article de grille éditez dedans le mode par double-clicking simplement l'article respectif (une approche facile et intuitive). Cette démo illustre comment commuter une rangée éditent dedans le mode par double-clicking un article de grille arbitraire et comment mettre à jour cette rangée quand l'utilisateur clique une autre rangée dans la grille. En outre, un facile à utiliser confirme le dialogue sera montré pour inciter, que l'opération devrait être propagée ou pas.
Les appels des utilisations RadGridClientObject.AjaxRequest d'exemple () (câblant les événements de RowClick et de RowDblClick) et l'événement d'onchange des entrées dans les rangées de grille utilisées pour éditer (le traiteur pour l'événement d'onchange est affecté dans le traiteur de RowCreated de la grille).
L'édition additionnelle vous incline et dupe (par exemple comment exécuter des mises à jour en lots) peut trouver dans Comment-au sous-chapitre section d'insertion/mise à jour/suppression de disques dans l'aide en ligne du produit :
Comment-à
using le système ;
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 abstraite publique DefaultCS : XhtmlPage
{
Code produit par concepteur de forme de Web de #region
OnInit vide protégé par dépassement (EventArgs e)
{
//
// CODEGEN : Cet appel est exigé par le concepteur de forme de Web d'ASP.NET.
//
InitializeComponent () ;
base.OnInit (e) ;
}
/// a exigé la méthode pour l'appui de concepteur - ne pas modifier
/// le contenu de cette méthode avec le rédacteur de code.
///
InitializeComponent vide privé ()
{
this.RadGrid1.NeedDataSource += nouveau Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource) ;
this.RadGrid1.ColumnCreated += nouveau Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated) ;
ceci. Charge += nouvel EventHandler (ceci. Page_Load) ;
}
#endregion
System.Web.UI.WebControls.Label protégé Label1 ;
Telerik.WebControls.RadGrid protégé RadGrid1 ;
Page_Load vide protégé (expéditeur d'objet, System.EventArgs e)
{
clientExecute de corde = corde. Composer (« document.getElementById (« {0} ").innerHTML = '' ; « , ceci. Label1.ClientID) ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
}
vide privé RadGrid1_NeedDataSource (source d'objet, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails ;
}
DataTable privé OrderDetails
{
obtenir
{
si (ceci. Session [« OrderDetails »] ! = nulle)
{
renvoyer (DataTable) ceci. Session [« OrderDetails »] ;
}
DataTable recherche = DataSourceHelperCS.GetDataTable (« CHOISIR * À PARTIR [des détails d'ordre] ") ;
ceci. Session [« OrderDetails »] = recherche ;
recherche de retour ;
}
}
vide protégé RaisePostBackEvent (sourceControl d'IPostBackEventHandler, eventArgument de priorité de corde)
{
base.RaisePostBackEvent (sourceControl, eventArgument) ;
si (le sourceControl est RadGrid)
{
ficeler [] le postBackEventArgumentData = l'eventArgument.Split (« : ") ;
commutateur (postBackEventArgumentData [0])
{
le cas « éditent » :
{
((RadGrid1.MasterTableView.Controls [0] comme Tableau). Rangées [international. Analyser (postBackEventArgumentData [1])] comme GridItem). Éditer = rectifier ;
RadGrid1.Rebind () ;
coupure ;
}
cas « mise à jour » :
{
Article de GridItem = ((RadGrid1.MasterTableView.Controls [0] comme Tableau). Rangées [international. Analyser (postBackEventArgumentData [1])] comme GridItem) ;
UpdateItem (article) ;
article. Éditer = faux ;
RadGrid1.Rebind () ;
coupure ;
}
}
}
}
vide privé RadGrid1_ColumnCreated (expéditeur d'objet, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
si (e.Column est GridBoundColumn)
{
si ((e.Column comme GridBoundColumn) == « OrderID » de .DataField || (e.Column comme GridBoundColumn) == « identité de produit » de .DataField)
{
(e.Column comme GridBoundColumn) .ReadOnly = rectifient ;
e.Column.HeaderStyle.Width = Unit.Pixel (60) ;
}
autrement
{
e.Column.HeaderStyle.Width = Unit.Pixel (150) ;
}
}
}
UpdateItem vide privé (article de GridItem)
{
editedItem = article de GridEditableItem comme GridEditableItem ;
DataTable ordersTable = this.OrderDetails ;
//Locate la rangée changée dans le point d'émission
changedRows de DataRow [] = ordersTable.Select (« OrderID = » + editedItem [« OrderID »]. Texte + » ET « + » identité de produit = « + editedItem [« identité de produit »]. Texte) ;
labelID de corde = ceci. Label1.ClientID ;
clientExecute de corde = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « , labelID, "") ;
si (changedRows.Length ! = 1)
{
clientExecute = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
labelID, « Unbale pour localiser la commande pour updating.") ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
retour ;
}
nouvelles valeurs de //Update
newValues de table de brouillage = nouvelle table de brouillage () ;
//The GridTableView remplira valeurs à partir de toutes les colonnes editable dans le gâchis
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem) ;
changedRow de DataRow = changedRows [0] ;
changedRow.BeginEdit () ;
essai
{
foreach (entrée d'entrée dictionnaire dans les newValues)
{
changedRow [entrée (de corde). Clef] = entrée. Valeur ;
}
changedRow.EndEdit () ;
}
crochet (exception ex)
{
changedRow.CancelEdit () ;
Le mode de //In AJAX ceci mettra à jour le texte correspondant d'étiquette, client-côté :
clientExecute = corde. Format (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
labelID, Server.HtmlEncode (« incapable de mettre à jour des ordres. Raison : » + ex. Message). Remplacer (« « », « » ").Replace ( » \ r \ n ", «
")) ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
retour ;
}
//Code pour mettre à jour la base de données peut aller ici…
clientExecute = corde. Composer (« document.getElementById (« {0} ").innerHTML = « {1} » ; « ,
le labelID, « ordre » + changedRow [« OrderID »] + », identité de produit « + changedRow [« identité de produit »] + » a mis à jour ") ;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute ;
}
}
}
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>art " Assembly= " Telerik.QuickStart " %>
<> %>
<>« %>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Espérer cette aide