📄 defaultcs.aspx.cs
字号:
using System.Collections;
using System.Data;
using System.Data.OleDb;
using System.Web.UI.WebControls;
using Telerik.QuickStart;
using Telerik.WebControls;
namespace Telerik.GridExamplesCSharp.DataEditing.EditModes
{
using System;
public class DefaultCS : XhtmlPage
{
protected Telerik.WebControls.RadGrid RadGrid1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.LinkButton Linkbutton2;
protected System.Web.UI.WebControls.LinkButton Linkbutton1;
protected System.Web.UI.WebControls.LinkButton Linkbutton4;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.RadioButton RadioButton1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.CheckBox CheckBox1;
protected System.Web.UI.WebControls.RadioButton RadioButton2;
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.RadioButton1.CheckedChanged += new System.EventHandler(this.RadioCheckedChanged);
this.RadioButton2.CheckedChanged += new System.EventHandler(this.RadioCheckedChanged);
this.RadGrid1.NeedDataSource += new Telerik.WebControls.GridNeedDataSourceEventHandler(this.RadGrid1_NeedDataSource);
this.RadGrid1.ItemCommand += new Telerik.WebControls.GridCommandEventHandler(this.RadGrid1_ItemCommand);
this.CheckBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
this.Load += new System.EventHandler(this.Page_Load);
this.PreRender += new System.EventHandler(this.grid_PreRender);
}
#endregion
private void RadioCheckedChanged(object sender, System.EventArgs e)
{
switch((sender as RadioButton).ID)
{
case "RadioButton1":
{
RadGrid1.MasterTableView.EditMode = GridEditMode.EditForms;
RadioButton1.Checked = true;
RadioButton2.Checked = false;
break;
}
case "RadioButton2":
{
RadGrid1.MasterTableView.EditMode = GridEditMode.InPlace;
RadioButton1.Checked = false;
RadioButton2.Checked = true;
break;
}
}
RadGrid1.Rebind();
}
public DataSet OrdersData
{
get
{
object obj = this.Session["OrdersData"];
if ( obj != null )
{
return (DataSet)obj;
}
DataSet ordersData = new DataSet();
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/Grid/Data/Access/Nwind.mdb"));
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, PostalCode, Bool FROM Customers", conn);
adapter.Fill( ordersData, "Customers" );
adapter.SelectCommand = new OleDbCommand("SELECT * FROM Orders", conn);
adapter.Fill( ordersData, "Orders" );
this.Session["OrdersData"] = ordersData;
return ordersData;
}
}
private void RadGrid1_NeedDataSource(object source, Telerik.WebControls.GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = this.OrdersData;
}
private void RadGrid1_ItemCommand(object source, Telerik.WebControls.GridCommandEventArgs e)
{
if ( e.CommandName == "Update" )
{
GridEditableItem editedItem = e.Item as GridEditableItem;
DataTable ordersTable = this.OrdersData.Tables["Orders"];
//Locate the changed row in the DataSource
DataRow[] changedRows = ordersTable.Select( "OrderID = " + editedItem["OrderID"].Text );
if (changedRows.Length != 1)
{
this.Label1.Text += "Unbale to locate the Order for updating.";
e.Canceled = true;
return;
}
//Update new values
Hashtable newValues = new Hashtable();
//The GridTableView will fill the values from all editable columns in the hash
e.Item.OwnerTableView.ExtractValuesFromItem(newValues, editedItem);
changedRows[0].BeginEdit();
try
{
foreach( DictionaryEntry entry in newValues )
{
changedRows[0][(string)entry.Key] = entry.Value;
}
changedRows[0].EndEdit();
}
catch( Exception ex )
{
changedRows[0].CancelEdit();
Label1.Text += "Unable to update Orders. Reason: " + ex.Message;
e.Canceled = true;
}
//Code for updating the database can go here...
Label1.Text += "Order " + editedItem["OrderID"].Text + " updated";
}
}
private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text = string.Empty;
if ( !IsPostBack )
{
this.Session["OrdersData"] = null;
if (this.RadGrid1.MasterTableView.EditMode == GridEditMode.InPlace)
{
this.RadioButton1.Checked = false;
this.RadioButton2.Checked = true;
}
else
{
this.RadioButton1.Checked = true;
this.RadioButton2.Checked = false;
}
}
}
private void grid_PreRender(object sender, System.EventArgs e)
{
if ( !this.IsPostBack )
{
this.RadGrid1.MasterTableView.Items[0].Edit = true;
this.RadGrid1.MasterTableView.Rebind();
}
}
private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
{
this.RadGrid1.AllowMultiRowEdit = this.CheckBox1.Checked;
this.RadGrid1.Rebind();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -