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

📄 defaultcs.aspx.cs

📁 Telerik是很大的第三方软件制造商
💻 CS
字号:
using System;
using System.Data;
using System.Data.OleDb;
using Telerik.QuickStart;
using Telerik.WebControls;

namespace Telerik.GridExamplesCSharp.GroupBy.Expressions
{
	public class DefaultCS : XhtmlPage
	{
		protected System.Web.UI.WebControls.Button btnPostBack;
		protected System.Web.UI.WebControls.TextBox TextBox1;
		protected System.Web.UI.WebControls.Button btnGroupBy;
		protected System.Web.UI.WebControls.Button btnClearAll;
		protected Telerik.WebControls.RadGrid RadGrid1;
		protected System.Web.UI.WebControls.CheckBox CheckBox1;
		protected System.Web.UI.WebControls.Label Label1;

		private string errorMsg = string.Empty;

		private void Page_Load(object sender, System.EventArgs e)
		{			
		}

		#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);
		}
		
		/// <summary>
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.btnGroupBy.Click += new System.EventHandler(this.btnGroupBy_Click);
			this.btnClearAll.Click += new System.EventHandler(this.btnClearAll_Click);
			this.CheckBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
			this.RadGrid1.ColumnCreated += new Telerik.WebControls.GridColumnCreatedEventHandler(this.RadGrid1_ColumnCreated);
			this.RadGrid1.NeedDataSource += new Telerik.WebControls.GridNeedDataSourceEventHandler(this.RadGrid1_NeedDataSource);
			this.RadGrid1.GroupsChanging += new Telerik.WebControls.GridGroupsChangingEventHandler(this.RadGrid1_GroupsChanging);
			this.btnPostBack.Click += new System.EventHandler(this.btnPostBack_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void RadGrid1_NeedDataSource(object source, Telerik.WebControls.GridNeedDataSourceEventArgs e)
		{
			OleDbConnection MyOleDbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/Grid/Data/Access/Nwind.mdb"));
			OleDbDataAdapter MyOleDbDataAdapter = new OleDbDataAdapter();
			MyOleDbDataAdapter.SelectCommand = new OleDbCommand(
			@"SELECT Customers.CustomerID, Country, City, CompanyName, ContactName, Count(Orders.OrderID) as TotalOrders, Sum(OD.Quantity * OD.UnitPrice - Discount) as TotalAmount
				FROM Customers, Orders, [Order Details] OD
				Where (Orders.CustomerID = Customers.CustomerID) and
					  (OD.OrderID = Orders.OrderID)
				Group By Customers.CustomerID, Country, City, CompanyName, ContactName
			  ", MyOleDbConnection);

			DataSet MyDataSet = new DataSet();

			MyOleDbConnection.Open();
			MyOleDbDataAdapter.Fill(MyDataSet);
			MyOleDbConnection.Close();

			MyDataSet.CaseSensitive = false;

			RadGrid1.DataSource = MyDataSet.Tables[0];
		}

		private void btnPostBack_Click(object sender, System.EventArgs e)
		{
			//
		}

		private void btnGroupBy_Click(object sender, System.EventArgs e)
		{
			try
			{
				GridGroupByExpression expression1 = GridGroupByExpression.Parse( this.TextBox1.Text );
				this.CustomizeExpression( expression1 );
				this.RadGrid1.MasterTableView.GroupByExpressions.Add(expression1);
				RadGrid1.Rebind();
			}
			catch( Exception ex )
			{
				this.errorMsg = string.Format( "<strong>Cannot add group by expression: {0}</strong><br>", ex.Message );
			}
		}


		private void btnClearAll_Click(object sender, System.EventArgs e)
		{
			this.RadGrid1.MasterTableView.GroupByExpressions.Clear();
			this.RadGrid1.Rebind();
		}

		protected override void Render(System.Web.UI.HtmlTextWriter writer)
		{
			if ( this.errorMsg != string.Empty )
			{
				RadGrid1.Visible = false;
				Label1.Text = errorMsg;
				Label1.Visible = true;
			}

			base.Render (writer);
		}

		private void CustomizeExpression( GridGroupByExpression expression )
		{
			//avoid adding the total field twice
			GridGroupByField existing = expression.SelectFields.FindByName("TotalAmount");
			if ( existing == null ) //field is not present
			{
				//Construct and add a new aggregate field 
				GridGroupByField field = new GridGroupByField();
				field.FieldName = "TotalAmount";
				field.FieldAlias = "SubTotal";
				field.Aggregate = GridAggregateFunction.Sum;
				field.FormatString = "{0:C}";

				expression.SelectFields.Add( field );
			}
			else //field is present then set a format string
			{
				existing.FormatString = "{0:C}";
			}
		}

		private void RadGrid1_GroupsChanging(object source, Telerik.WebControls.GridGroupsChangingEventArgs e)
		{
			//Expression is added (by drag/grop on group panel)
			if ( e.Action == GridGroupsChangingAction.Group )
			{
				this.CustomizeExpression( e.Expression );
			}
		}

		private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
		{
			this.RadGrid1.MasterTableView.GroupsDefaultExpanded = this.CheckBox1.Checked;
			if ( this.RadGrid1.MasterTableView.GroupByExpressions.Count > 0 )
			{
				//refresh on RreRender if grid not rebound
				this.RadGrid1.MasterTableView.SetLevelRequiresBinding();
			}
		}

		private void RadGrid1_ColumnCreated(object sender, Telerik.WebControls.GridColumnCreatedEventArgs e)
		{
			if (e.Column is GridBoundColumn && (e.Column as GridBoundColumn).DataField == "TotalAmount")
			{
				(e.Column as GridBoundColumn).DataFormatString = "{0:C}";
			}
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -