------------------------------------C# Kod---------------------------------
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
{
jawny abstrakcjonistyczny klasa DefaultCS: XhtmlPage
{
#region Sieć Forma Projektant wytwarzać kod
override ochraniać kawitacyjny OnInit (EventArgs e)
{
//
// CODEGEN: Ten wezwanie wymagać the ASP.NET Sieć Forma Projektant.
//
InitializeComponent ();
base.OnInit (e);
}
/// Wymagać metoda dla Projektant poparcie - modyfikować
/// the zawartość ten metoda z the kod redaktor.
///
intymny kawitacyjny InitializeComponent ()
{
this.RadGrid1.NeedDataSource += nowy Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nowy Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
to. Obciążeniowy += nowy EventHandler (page_Load. Page_Load);
}
#endregion
ochraniać System.Web.UI.WebControls.Label Label1;
ochraniać Telerik.WebControls.RadGrid RadGrid1;
ochraniać kawitacyjny Page_Load (przedmiot nadawca, System.EventArgs e)
{
smyczkowy clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = ''; ", label1.ClientID. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
intymny pustka RadGrid1_NeedDataSource (przedmiot źródło, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
intymny DataTable OrderDetails
{
dostawać
{
jeżeli (to. Sesja ["OrderDetails"]! = null)
{
wracać (DataTable) to. Sesja ["OrderDetails"];
}
DataTable res = DataSourceHelperCS.GetDataTable ("WYBIÓRKA * OD [Rozkaz Szczegół] ");
to. Sesja ["OrderDetails"] = res;
powrotny res;
}
}
ochraniać override pustka RaisePostBackEvent (IPostBackEventHandler sourceControl, smyczkowy eventArgument)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
jeżeli (sourceControl być RadGrid)
{
zawiązywać [] postBackEventArgumentData = eventArgument.Split (": ");
zmiana (postBackEventArgumentData [(0)])
{
skrzynka "Redagować":
{
((RadGrid1.MasterTableView.Controls [(0)] Stół). Rząd [int. Parse (postBackEventArgumentData [(1)])] jako GridItem). Redagować = true;
RadGrid1.Rebind ();
przerwa;
}
skrzynka "Aktualizacja":
{
GridItem rzecz = ((RadGrid1.MasterTableView.Controls [(0)] Stół). Rząd [int. Parse (postBackEventArgumentData [(1)])] jako GridItem);
UpdateItem (rzecz);
rzecz. Redagować = fałszywy;
RadGrid1.Rebind ();
przerwa;
}
}
}
}
intymny pustka RadGrid1_ColumnCreated (przedmiot nadawca, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
jeżeli (e.Column być GridBoundColumn)
{
jeżeli ((e.Column jako GridBoundColumn) .DataField == "OrderID" || (e.Column jako GridBoundColumn) .DataField == "ProductID")
{
(e.Column jako GridBoundColumn) .ReadOnly = true;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
inny
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
intymny kawitacyjny UpdateItem (GridItem rzecz)
{
GridEditableItem editedItem = rzecz jako GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate the rozmieniony rząd w the DataSource
DataRow [] changedRows = ordersTable.Select ("OrderID =" + editedItem ["OrderID"]. Tekst +" I "+" ProductID = "+ editedItem ["ProductID"]. Tekst);
smyczkowy labelID = label1.ClientID. Label1.ClientID;
smyczkowy clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ", labelID, "");
jeżeli (changedRows.Length! = 1)
{
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, "Unbale the Rozkaz dla updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
powrót;
}
//Update nowy wartość
Hashtable newValues = nowy Hashtable ();
//The GridTableView wypełniać the wartość od wszystkie wszystkie kolumna w the hash
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
DataRow changedRow = changedRows [(0)];
changedRow.BeginEdit ();
próba
{
foreach (DictionaryEntry wejście w newValues)
{
changedRow [(smyczkowy) wejście. Klucz] = wejście. Wartość;
}
changedRow.EndEdit ();
}
chwyt (Wyjątek wyjątek)
{
changedRow.CancelEdit ();
//In AJAX tryb tekst aktualizować the etykietka tekst, klient-popierać kogoś:
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, Server.HtmlEncode ("Niezdolny Rozkaz. Powód: " + ex. Wiadomość). Zamieniać (""", "" ").Replace (" \ r \ n ", "
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
powrót;
}
//Code dla the baza danych móc tutaj…
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, "Rozkaz" + changedRow ["OrderID"] +", ProductID "+ changedRow ["ProductID"] +" aktualizować ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
------------------------------ASPX Kod------------------------------
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>sztuka " Assembly= " Telerik.QuickStart " %>
<> %>
<>"%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Ty móc the użytkownik siatka rzecz wewnątrz redagować tryb po prostu double-clicking the poszczególny rzecz (łatwy i intuicyjnie podejście). Ten demonstracja ilustrować dlaczego rząd wewnątrz redagować tryb double-clicking arbitralny siatka rzecz i dlaczego ten rząd gdy the użytkownik klikać inny rząd w the siatka. Furthermore, przyjazny dla użytkownika potwierdzać dialog wystawiać czy the operacja musieć rozkrzewiać lub nie.
The przykład uses RadGridClientObject.AjaxRequest () wezwanie (depeszować the RowClick i RowDblClick wydarzenie) i the onchange wydarzenie the wkład w the siatka rząd używać dla edytorstwo (the treser dla the onchange wydarzenie wyznaczać w the RowCreated treser the siatka).
Dodatkowy edytorstwo porada i sztuczka (na przykład dlaczego wsad aktualizacja) ty móc w the Jak-subchapter od the Wszywka/Aktualizacja/Deleatur rejestr sekcja w the produkt online pomoc:
Jak-
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
{
jawny abstrakcjonistyczny klasa DefaultCS: XhtmlPage
{
#region Sieć Forma Projektant wytwarzać kod
override ochraniać kawitacyjny OnInit (EventArgs e)
{
//
// CODEGEN: Ten wezwanie wymagać the ASP.NET Sieć Forma Projektant.
//
InitializeComponent ();
base.OnInit (e);
}
/// Wymagać metoda dla Projektant poparcie - modyfikować
/// the zawartość ten metoda z the kod redaktor.
///
intymny kawitacyjny InitializeComponent ()
{
this.RadGrid1.NeedDataSource += nowy Telerik.WebControls.GridNeedDataSourceEventHandler (this.RadGrid1_NeedDataSource);
this.RadGrid1.ColumnCreated += nowy Telerik.WebControls.GridColumnCreatedEventHandler (this.RadGrid1_ColumnCreated);
to. Obciążeniowy += nowy EventHandler (page_Load. Page_Load);
}
#endregion
ochraniać System.Web.UI.WebControls.Label Label1;
ochraniać Telerik.WebControls.RadGrid RadGrid1;
ochraniać kawitacyjny Page_Load (przedmiot nadawca, System.EventArgs e)
{
smyczkowy clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = ''; ", label1.ClientID. Label1.ClientID);
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
intymny pustka RadGrid1_NeedDataSource (przedmiot źródło, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrderDetails;
}
intymny DataTable OrderDetails
{
dostawać
{
jeżeli (to. Sesja ["OrderDetails"]! = null)
{
wracać (DataTable) to. Sesja ["OrderDetails"];
}
DataTable res = DataSourceHelperCS.GetDataTable ("WYBIÓRKA * OD [Rozkaz Szczegół] ");
to. Sesja ["OrderDetails"] = res;
powrotny res;
}
}
ochraniać override pustka RaisePostBackEvent (IPostBackEventHandler sourceControl, smyczkowy eventArgument)
{
base.RaisePostBackEvent (sourceControl, eventArgument);
jeżeli (sourceControl być RadGrid)
{
zawiązywać [] postBackEventArgumentData = eventArgument.Split (": ");
zmiana (postBackEventArgumentData [(0)])
{
skrzynka "Redagować":
{
((RadGrid1.MasterTableView.Controls [(0)] Stół). Rząd [int. Parse (postBackEventArgumentData [(1)])] jako GridItem). Redagować = true;
RadGrid1.Rebind ();
przerwa;
}
skrzynka "Aktualizacja":
{
GridItem rzecz = ((RadGrid1.MasterTableView.Controls [(0)] Stół). Rząd [int. Parse (postBackEventArgumentData [(1)])] jako GridItem);
UpdateItem (rzecz);
rzecz. Redagować = fałszywy;
RadGrid1.Rebind ();
przerwa;
}
}
}
}
intymny pustka RadGrid1_ColumnCreated (przedmiot nadawca, Telerik.WebControls.GridColumnCreatedEventArgs e)
{
jeżeli (e.Column być GridBoundColumn)
{
jeżeli ((e.Column jako GridBoundColumn) .DataField == "OrderID" || (e.Column jako GridBoundColumn) .DataField == "ProductID")
{
(e.Column jako GridBoundColumn) .ReadOnly = true;
e.Column.HeaderStyle.Width = Unit.Pixel (60);
}
inny
{
e.Column.HeaderStyle.Width = Unit.Pixel (150);
}
}
}
intymny kawitacyjny UpdateItem (GridItem rzecz)
{
GridEditableItem editedItem = rzecz jako GridEditableItem;
DataTable ordersTable = this.OrderDetails;
//Locate the rozmieniony rząd w the DataSource
DataRow [] changedRows = ordersTable.Select ("OrderID =" + editedItem ["OrderID"]. Tekst +" I "+" ProductID = "+ editedItem ["ProductID"]. Tekst);
smyczkowy labelID = label1.ClientID. Label1.ClientID;
smyczkowy clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ", labelID, "");
jeżeli (changedRows.Length! = 1)
{
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, "Unbale the Rozkaz dla updating.");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
powrót;
}
//Update nowy wartość
Hashtable newValues = nowy Hashtable ();
//The GridTableView wypełniać the wartość od wszystkie wszystkie kolumna w the hash
item.OwnerTableView.ExtractValuesFromItem (newValues, editedItem);
DataRow changedRow = changedRows [(0)];
changedRow.BeginEdit ();
próba
{
foreach (DictionaryEntry wejście w newValues)
{
changedRow [(smyczkowy) wejście. Klucz] = wejście. Wartość;
}
changedRow.EndEdit ();
}
chwyt (Wyjątek wyjątek)
{
changedRow.CancelEdit ();
//In AJAX tryb tekst aktualizować the etykietka tekst, klient-popierać kogoś:
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, Server.HtmlEncode ("Niezdolny Rozkaz. Powód: " + ex. Wiadomość). Zamieniać (""", "" ").Replace (" \ r \ n ", "
"));
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
powrót;
}
//Code dla the baza danych móc tutaj…
clientExecute = sznurek. Format ("document.getElementById ("{(0)} ").innerHTML = "{(1)}"; ",
labelID, "Rozkaz" + changedRow ["OrderID"] +", ProductID "+ changedRow ["ProductID"] +" aktualizować ");
this.RadGrid1.ClientSettings.ClientEvents.OnGridCreated = clientExecute;
}
}
}
<>.cs " Inherits= " Telerik.GridExamplesCSharp.AJAX.EditOnDblClick.DefaultCS " %>
<>sztuka " Assembly= " Telerik.QuickStart " %>
<> %>
<>"%>
<> %>
<>rols " Assembly= " RadGrid " %>
http://www.w3.org/tr/xhtml11/DTD/xhtml11.dtd">
tag>
Mieć Nadzieję ten pomoc