⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultcs.aspx.cs

📁 Telerik是很大的第三方软件制造商
💻 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 + -