📄 defaultcs.aspx.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 + -