------------------------------------C# Code---------------------------------
using System;
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
{
allgemeine abstrakte Kategorie DefaultCS: XhtmlPage
{
Erzeugter Code der #region Netz-Form Entwerfer
Übersteuerung geschütztes leeres OnInit (EventArgs e)
{
//
// CODEGEN: Dieser Anruf gefordert vom ASP.NET Netz-Form-Entwerfer.
//
InitializeComponent ();
base.OnInit (e);
}
/// erforderte Methode für Entwerferunterstützung - nicht ändern
/// der Inhalt dieser Methode mit dem Codeherausgeber.
///
privates leeres InitializeComponent ()
{
this.RadGrid1.NeedDataSource += neues Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += neues Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
dieses. Last += neues EventHandler (dieses. Page_Load);
}
#endregion
geschütztes System.Web.UI.WebControls.Label Label1;
geschütztes Telerik.WebControls.RadGrid RadGrid1;
geschütztes leeres Page_Load (Gegenstandabsender, System.EventArgs e)
{
Schnur clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = ''; „, dieses. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
private Lücke RadGrid1_NeedDataSource (Gegenstandquelle, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
privates DataTable OrderDetails
{
erhalten
{
wenn (dieses. Lernabschnitt [„OrderDetails“]! = Null)
{
(DataTable) dieses zurückbringen. Lernabschnitt [„OrderDetails“];
}
DataTable Res = DataSourceHelperCS.GetDataTable („* VON VORWÄHLEN [Auftrags-Details] ");
dieses. Lernabschnitt [„OrderDetails“] = Res;
Rückholres;
}
}
geschützte Übersteuerungslücke RaisePostBackEvent (IPostBackEventHandler sourceControl, Schnur eventArgument)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
wenn (sourceControl ist RadGrid)
{
[] postBackEventArgumentData = eventArgument.Split aufreihen („: ");
Schalter (postBackEventArgumentData [0])
{
Fall „redigieren“:
{
((RadGrid1.MasterTableView.Controls [0] als Tabelle). Reihen [int. Analysieren (postBackEventArgumentData [1])] als GridItem). Redigieren = ausrichten;
RadGrid1.Rebind ();
Bruch;
}
Fall „Update“:
{
GridItem Einzelteil = ((RadGrid1.MasterTableView.Controls [0] als Tabelle). Reihen [int. Analysieren (postBackEventArgumentData [1])] als GridItem);
UpdateItem (Einzelteil);
Einzelteil. Redigieren = falsch;
RadGrid1.Rebind ();
Bruch;
}
}
}
}
private Lücke RadGrid1_ColumnCreated (Gegenstandabsender, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
wenn (e.Column ist GridBoundColumn)
{
wenn ((e.Column als GridBoundColumn) .DataField == „OrderID“ || (e.Column als GridBoundColumn) .DataField == „ProductID“)
{
(e.Column als GridBoundColumn) ausrichten .ReadOnly = en;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
sonst
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
privates leeres UpdateItem (GridItem Einzelteil)
{
GridEditableItem editedItem = Einzelteil als GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate die geänderte Reihe in der Datenquelle
DataRow [] changedRows = ordersTable.Select („OrderID =“ + editedItem [„OrderID“]. Text +“ UND „+“ ProductID = „+ editedItem [„ProductID“]. Text);
Schnur labelID = dieses. Label1.ClientID;
Schnur clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „, labelID, "");
wenn (changedRows.Length! = 1)
{
clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, „Unbale, zum des Auftrages für updating.") zu lokalisieren;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
Rückkehr;
}
//Update-neue Werte
Hacktisch newValues = neuer Hacktisch ();
//The GridTableView füllt die Werte von allen editable Spalten im Durcheinander
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
DataRow changedRow = changedRows [0];
changedRow.BeginEdit ();
Versuch
{
foreach (Wörterbucheintrageintragung in den newValues)
{
changedRow [(Schnur) Eintragung. Schlüssel] = Eintragung. Wert;
}
changedRow.EndEdit ();
}
Fang (Ausnahme ex)
{
changedRow.CancelEdit ();
Modus //In-AJAX dieses aktualisiert den entsprechenden Aufklebertext, Klientseite:
clientExecute = Schnur. Format („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, Server.HtmlEncode („nicht imstande, Aufträge zu aktualisieren. Grund: “ + ex. Mitteilung). Ersetzen („„“, „“ ").Replace (“ \ r \ n ", „
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
Rückkehr;
}
//Code für die Aktualisierung der Datenbank kann hier gehen…
clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, „Auftrag“ + changedRow [„OrderID“] +“, ProductID „+ changedRow [„ProductID“] +“ aktualisierte ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
------------------------------ASPX Code------------------------------
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>Kunst " Assembly= " Telerik.QuickStart " %>
<> %>
<>„%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Sie können dem Benutzer erlauben wünschen, Rasterfeldeinzelteil zu zwingen redigieren innen Modus, indem Sie einfach das jeweilige Einzelteil double-clicking (eine einfache und intuitive Annäherung). Diese Demo veranschaulicht, wie man eine Reihe redigieren innen Modus schält, indem sie ein Einzelteil des willkürlichen Rasterfeldes double-clicking und wie man diese Reihe aktualisiert, wenn der Benutzer eine andere Reihe im Rasterfeld anklickt. Außerdem bestätigen ein benutzerfreundliches Dialog angezeigt, um aufzufordern, ob der Betrieb verbreitet werden sollte oder nicht.
Die Anrufe des Beispielgebrauches RadGridClientObject.AjaxRequest () (die RowClick und RowDblClick Ereignisse verdrahtend) und das onchange Ereignis der Eingänge in den Rasterfeldreihen verwendet für das Redigieren (die Zufuhr für das onchange Ereignis zugewiesen in der RowCreated Zufuhr des Rasterfeldes)).
Das zusätzliche Redigieren spitzt und betrügt (z.B., wie man Reihenupdates durchführt), Sie kann in Wie-zum Unterkapitel von den Einsatz-/Update-/Löschungaufzeichnungen finden Abschnitt in der on-line-Hilfe des Produktes:
Wie-zu
using System;
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
{
allgemeine abstrakte Kategorie DefaultCS: XhtmlPage
{
Erzeugter Code der #region Netz-Form Entwerfer
Übersteuerung geschütztes leeres OnInit (EventArgs e)
{
//
// CODEGEN: Dieser Anruf gefordert vom ASP.NET Netz-Form-Entwerfer.
//
InitializeComponent ();
base.OnInit (e);
}
/// erforderte Methode für Entwerferunterstützung - nicht ändern
/// der Inhalt dieser Methode mit dem Codeherausgeber.
///
privates leeres InitializeComponent ()
{
this.RadGrid1.NeedDataSource += neues Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += neues Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
dieses. Last += neues EventHandler (dieses. Page_Load);
}
#endregion
geschütztes System.Web.UI.WebControls.Label Label1;
geschütztes Telerik.WebControls.RadGrid RadGrid1;
geschütztes leeres Page_Load (Gegenstandabsender, System.EventArgs e)
{
Schnur clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = ''; „, dieses. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
private Lücke RadGrid1_NeedDataSource (Gegenstandquelle, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
privates DataTable OrderDetails
{
erhalten
{
wenn (dieses. Lernabschnitt [„OrderDetails“]! = Null)
{
(DataTable) dieses zurückbringen. Lernabschnitt [„OrderDetails“];
}
DataTable Res = DataSourceHelperCS.GetDataTable („* VON VORWÄHLEN [Auftrags-Details] ");
dieses. Lernabschnitt [„OrderDetails“] = Res;
Rückholres;
}
}
geschützte Übersteuerungslücke RaisePostBackEvent (IPostBackEventHandler sourceControl, Schnur eventArgument)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
wenn (sourceControl ist RadGrid)
{
[] postBackEventArgumentData = eventArgument.Split aufreihen („: ");
Schalter (postBackEventArgumentData [0])
{
Fall „redigieren“:
{
((RadGrid1.MasterTableView.Controls [0] als Tabelle). Reihen [int. Analysieren (postBackEventArgumentData [1])] als GridItem). Redigieren = ausrichten;
RadGrid1.Rebind ();
Bruch;
}
Fall „Update“:
{
GridItem Einzelteil = ((RadGrid1.MasterTableView.Controls [0] als Tabelle). Reihen [int. Analysieren (postBackEventArgumentData [1])] als GridItem);
UpdateItem (Einzelteil);
Einzelteil. Redigieren = falsch;
RadGrid1.Rebind ();
Bruch;
}
}
}
}
private Lücke RadGrid1_ColumnCreated (Gegenstandabsender, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
wenn (e.Column ist GridBoundColumn)
{
wenn ((e.Column als GridBoundColumn) .DataField == „OrderID“ || (e.Column als GridBoundColumn) .DataField == „ProductID“)
{
(e.Column als GridBoundColumn) ausrichten .ReadOnly = en;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
sonst
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
privates leeres UpdateItem (GridItem Einzelteil)
{
GridEditableItem editedItem = Einzelteil als GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate die geänderte Reihe in der Datenquelle
DataRow [] changedRows = ordersTable.Select („OrderID =“ + editedItem [„OrderID“]. Text +“ UND „+“ ProductID = „+ editedItem [„ProductID“]. Text);
Schnur labelID = dieses. Label1.ClientID;
Schnur clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „, labelID, "");
wenn (changedRows.Length! = 1)
{
clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, „Unbale, zum des Auftrages für updating.") zu lokalisieren;
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
Rückkehr;
}
//Update-neue Werte
Hacktisch newValues = neuer Hacktisch ();
//The GridTableView füllt die Werte von allen editable Spalten im Durcheinander
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
DataRow changedRow = changedRows [0];
changedRow.BeginEdit ();
Versuch
{
foreach (Wörterbucheintrageintragung in den newValues)
{
changedRow [(Schnur) Eintragung. Schlüssel] = Eintragung. Wert;
}
changedRow.EndEdit ();
}
Fang (Ausnahme ex)
{
changedRow.CancelEdit ();
Modus //In-AJAX dieses aktualisiert den entsprechenden Aufklebertext, Klientseite:
clientExecute = Schnur. Format („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, Server.HtmlEncode („nicht imstande, Aufträge zu aktualisieren. Grund: “ + ex. Mitteilung). Ersetzen („„“, „“ ").Replace (“ \ r \ n ", „
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
Rückkehr;
}
//Code für die Aktualisierung der Datenbank kann hier gehen…
clientExecute = Schnur. Formatieren („document.getElementById („{0} ").innerHTML = „{1}“; „,
labelID, „Auftrag“ + changedRow [„OrderID“] +“, ProductID „+ changedRow [„ProductID“] +“ aktualisierte ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>Kunst " Assembly= " Telerik.QuickStart " %>
<> %>
<>„%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Diese Hilfe hoffen