实现自定义分页(如:改变传统datagrid的分页显示、通过A-Z的字母来分页等)、选择的check

<script type="text/javascript"> function StorePage() { d=document; t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():''); void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); } </script> 

代码
    
    
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace DataGridDemoCS { /// /// Demo1 的摘要说明。 /// public class DemoFinal : System.Web.UI.Page { protected System.Data.SqlClient.SqlConnection sqlConnection1; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1; // 注意:dataset在编辑状态中将清空,所以可以将dataset申明为static,这样就可以保持dataset状态; // 静态成员变量不可以用this来调用 protected DataGridDemoCS.dsCustomers dsCustomers1; protected DataGridDemoCS.dsCustomers.CustomersDataTable dsCustomerTable; protected DataGridDemoCS.dsCustomers.CustomersRow dsCustomerRow; protected System.Data.SqlClient.SqlCommand sqlSelectCommand1; protected System.Data.SqlClient.SqlCommand sqlInsertCommand1; protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1; protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1; protected System.Data.SqlClient.SqlConnection sqlConnection2; protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button BtnInsertOneRow; protected System.Web.UI.WebControls.Button BtnDeleteGrouply; protected System.Web.UI.WebControls.Panel PnlPage; protected System.Data.DataView dv; protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter2; protected System.Data.SqlClient.SqlConnection sqlConnection3; protected System.Web.UI.WebControls.DataGrid DataGrid1; public int ExpandedItem = 7 ; public Unit HostColumnWidth; private DataGrid detailsGrid; const string ExpandText = " + " ; protected System.Data.SqlClient.SqlCommand sqlSelectCommand2; protected System.Data.SqlClient.SqlCommand sqlInsertCommand2; protected System.Data.SqlClient.SqlCommand sqlUpdateCommand2; protected System.Data.SqlClient.SqlCommand sqlDeleteCommand2; protected System.Web.UI.WebControls.Button Button2; const string CollapseText = " - " ; private void Page_Load( object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if ( ! Page.IsPostBack) { ExpandedItem = - 1 ; testWorkFlow = "" ; ViewState[ " Sort " ] = " CustomerID " ; ViewState[ " orderby " ] = " asc " ; bindDate(); BtnDeleteGrouply.Attributes.Add( " OnClick " , " javascript:DeleteGrouply(); " ); HostColumnWidth = Unit.Pixel( 150 ); } } void bindDate() { testWorkFlow = "" ; sqlDataAdapter1.Fill(dsCustomers1, " Customers " ); if (( string )(ViewState[ " Sort " ]) != "" ) dv.Sort = ( string )ViewState[ " Sort " ] + " " + ViewState[ " orderby " ]; else dsCustomers1.Customers.DefaultView.Sort = " CustomerID " ; if (( string )(ViewState[ " alpha " ]) != "" ) { dv.RowFilter = " CustomerID LIKE ' " + ( string )(ViewState[ " alpha " ]) + " %' " ; } DataGrid1.DataBind(); m_CreatePageTimes = 0 ; } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base .OnInit(e); } /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this .sqlConnection1 = new System.Data.SqlClient.SqlConnection(); this .sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter(); this .sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand(); this .sqlConnection2 = new System.Data.SqlClient.SqlConnection(); this .sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand(); this .sqlSelectCommand1 = new System.Data.SqlClient.SqlCommand(); this .sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand(); this .dsCustomers1 = new DataGridDemoCS.dsCustomers(); this .dv = new System.Data.DataView(); this .sqlDataAdapter2 = new System.Data.SqlClient.SqlDataAdapter(); this .sqlDeleteCommand2 = new System.Data.SqlClient.SqlCommand(); this .sqlConnection3 = new System.Data.SqlClient.SqlConnection(); this .sqlInsertCommand2 = new System.Data.SqlClient.SqlCommand(); this .sqlSelectCommand2 = new System.Data.SqlClient.SqlCommand(); this .sqlUpdateCommand2 = new System.Data.SqlClient.SqlCommand(); ((System.ComponentModel.ISupportInitialize)( this .dsCustomers1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)( this .dv)).BeginInit(); this .DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler( this .DataGrid1_ItemCreated); this .DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler( this .DataGrid1_ItemCommand); this .DataGrid1.Init += new System.EventHandler( this .DataGrid1_Init); this .DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler( this .DataGrid1_PageIndexChanged); this .DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler( this .DataGrid1_CancelCommand); this .DataGrid1.PreRender += new System.EventHandler( this .DataGrid1_PreRender); this .DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler( this .DataGrid1_EditCommand); this .DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler( this .DataGrid1_SortCommand); this .DataGrid1.DataBinding += new System.EventHandler( this .DataGrid1_DataBinding); this .DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler( this .DataGrid1_UpdateCommand); this .DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler( this .DataGrid1_DeleteCommand); this .DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler( this .DataGrid1_ItemDataBound); this .Button1.Click += new System.EventHandler( this .Button1_Click); this .BtnInsertOneRow.Click += new System.EventHandler( this .BtnInsertOneRow_Click); this .BtnDeleteGrouply.Click += new System.EventHandler( this .BtnDeleteGrouply_Click); // // sqlConnection1 // this .sqlConnection1.ConnectionString = " workstation id=/"FANCY-FAMILY/";packet size=4096;user id=sa;data source=/"FANCY-FAMI " + " LY/";persist security info=False;initial catalog=Northwind " ; // // sqlDataAdapter1 // this .sqlDataAdapter1.DeleteCommand = this .sqlDeleteCommand1; this .sqlDataAdapter1.InsertCommand = this .sqlInsertCommand1; this .sqlDataAdapter1.SelectCommand = this .sqlSelectCommand1; this .sqlDataAdapter1.TableMappings.AddRange( new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping( " Table " , " Customers " , new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping( " CustomerID " , " CustomerID " ), new System.Data.Common.DataColumnMapping( " CompanyName " , " CompanyName " ), new System.Data.Common.DataColumnMapping( " ContactName " , " ContactName " ), new System.Data.Common.DataColumnMapping( " ContactTitle " , " ContactTitle " ), new System.Data.Common.DataColumnMapping( " Address " , " Address " ), new System.Data.Common.DataColumnMapping( " City " , " City " ), new System.Data.Common.DataColumnMapping( " Region " , " Region " ), new System.Data.Common.DataColumnMapping( " PostalCode " , " PostalCode " ), new System.Data.Common.DataColumnMapping( " Country " , " Country " ), new System.Data.Common.DataColumnMapping( " Phone " , " Phone " ), new System.Data.Common.DataColumnMapping( " Fax " , " Fax " )})}); this .sqlDataAdapter1.UpdateCommand = this .sqlUpdateCommand1; // // sqlDeleteCommand1 // this .sqlDeleteCommand1.CommandText = @" DELETE FROM Customers WHERE (CustomerID = @Original_CustomerID) AND (Address = @Original_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @Original_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Original_CompanyName) AND (ContactName = @Original_ContactName OR @Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Original_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Original_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone OR @Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_PostalCode OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Original_Region OR @Original_Region IS NULL AND Region IS NULL) " ; this .sqlDeleteCommand1.Connection = this .sqlConnection2; this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CustomerID " , System.Data.SqlDbType.NVarChar, 5 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CustomerID " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Address " , System.Data.SqlDbType.NVarChar, 60 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Address " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_City " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " City " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CompanyName " , System.Data.SqlDbType.NVarChar, 40 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CompanyName " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ContactName " , System.Data.SqlDbType.NVarChar, 30 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ContactName " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ContactTitle " , System.Data.SqlDbType.NVarChar, 30 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ContactTitle " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Country " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Country " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Fax " , System.Data.SqlDbType.NVarChar, 24 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Fax " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Phone " , System.Data.SqlDbType.NVarChar, 24 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Phone " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_PostalCode " , System.Data.SqlDbType.NVarChar, 10 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " PostalCode " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Region " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Region " , System.Data.DataRowVersion.Original, null )); // // sqlConnection2 // this .sqlConnection2.ConnectionString = " workstation id=/"FANCY-FAMILY/";packet size=4096;user id=sa;data source=/"FANCY-FAMI " + " LY/";persist security info=False;initial catalog=Northwind " ; // // sqlInsertCommand1 // this .sqlInsertCommand1.CommandText = @" INSERT INTO Customers(CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax) VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID) " ; this .sqlInsertCommand1.Connection = this .sqlConnection2; this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CustomerID " , System.Data.SqlDbType.NVarChar, 5 , " CustomerID " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CompanyName " , System.Data.SqlDbType.NVarChar, 40 , " CompanyName " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ContactName " , System.Data.SqlDbType.NVarChar, 30 , " ContactName " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ContactTitle " , System.Data.SqlDbType.NVarChar, 30 , " ContactTitle " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Address " , System.Data.SqlDbType.NVarChar, 60 , " Address " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @City " , System.Data.SqlDbType.NVarChar, 15 , " City " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Region " , System.Data.SqlDbType.NVarChar, 15 , " Region " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @PostalCode " , System.Data.SqlDbType.NVarChar, 10 , " PostalCode " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Country " , System.Data.SqlDbType.NVarChar, 15 , " Country " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Phone " , System.Data.SqlDbType.NVarChar, 24 , " Phone " )); this .sqlInsertCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Fax " , System.Data.SqlDbType.NVarChar, 24 , " Fax " )); // // sqlSelectCommand1 // this .sqlSelectCommand1.CommandText = " SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, " + " PostalCode, Country, Phone, Fax FROM Customers " ; this .sqlSelectCommand1.Connection = this .sqlConnection2; // // sqlUpdateCommand1 // this .sqlUpdateCommand1.CommandText = @" UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName, ContactName = @ContactName, ContactTitle = @ContactTitle, Address = @Address, City = @City, Region = @Region, PostalCode = @PostalCode, Country = @Country, Phone = @Phone, Fax = @Fax WHERE (CustomerID = @Original_CustomerID) AND (Address = @Original_Address OR @Original_Address IS NULL AND Address IS NULL) AND (City = @Original_City OR @Original_City IS NULL AND City IS NULL) AND (CompanyName = @Original_CompanyName) AND (ContactName = @Original_ContactName OR @Original_ContactName IS NULL AND ContactName IS NULL) AND (ContactTitle = @Original_ContactTitle OR @Original_ContactTitle IS NULL AND ContactTitle IS NULL) AND (Country = @Original_Country OR @Original_Country IS NULL AND Country IS NULL) AND (Fax = @Original_Fax OR @Original_Fax IS NULL AND Fax IS NULL) AND (Phone = @Original_Phone OR @Original_Phone IS NULL AND Phone IS NULL) AND (PostalCode = @Original_PostalCode OR @Original_PostalCode IS NULL AND PostalCode IS NULL) AND (Region = @Original_Region OR @Original_Region IS NULL AND Region IS NULL); SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID) " ; this .sqlUpdateCommand1.Connection = this .sqlConnection2; this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CustomerID " , System.Data.SqlDbType.NVarChar, 5 , " CustomerID " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CompanyName " , System.Data.SqlDbType.NVarChar, 40 , " CompanyName " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ContactName " , System.Data.SqlDbType.NVarChar, 30 , " ContactName " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ContactTitle " , System.Data.SqlDbType.NVarChar, 30 , " ContactTitle " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Address " , System.Data.SqlDbType.NVarChar, 60 , " Address " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @City " , System.Data.SqlDbType.NVarChar, 15 , " City " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Region " , System.Data.SqlDbType.NVarChar, 15 , " Region " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @PostalCode " , System.Data.SqlDbType.NVarChar, 10 , " PostalCode " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Country " , System.Data.SqlDbType.NVarChar, 15 , " Country " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Phone " , System.Data.SqlDbType.NVarChar, 24 , " Phone " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Fax " , System.Data.SqlDbType.NVarChar, 24 , " Fax " )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CustomerID " , System.Data.SqlDbType.NVarChar, 5 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CustomerID " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Address " , System.Data.SqlDbType.NVarChar, 60 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Address " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_City " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " City " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CompanyName " , System.Data.SqlDbType.NVarChar, 40 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CompanyName " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ContactName " , System.Data.SqlDbType.NVarChar, 30 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ContactName " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ContactTitle " , System.Data.SqlDbType.NVarChar, 30 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ContactTitle " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Country " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Country " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Fax " , System.Data.SqlDbType.NVarChar, 24 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Fax " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Phone " , System.Data.SqlDbType.NVarChar, 24 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Phone " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_PostalCode " , System.Data.SqlDbType.NVarChar, 10 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " PostalCode " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand1.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_Region " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " Region " , System.Data.DataRowVersion.Original, null )); // // dsCustomers1 // this .dsCustomers1.DataSetName = " dsCustomers " ; this .dsCustomers1.Locale = new System.Globalization.CultureInfo( " zh-CN " ); // // dv // this .dv.Table = this .dsCustomers1.Customers; // // sqlDataAdapter2 // this .sqlDataAdapter2.DeleteCommand = this .sqlDeleteCommand2; this .sqlDataAdapter2.InsertCommand = this .sqlInsertCommand2; this .sqlDataAdapter2.SelectCommand = this .sqlSelectCommand2; this .sqlDataAdapter2.TableMappings.AddRange( new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping( " Table " , " Orders " , new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping( " OrderID " , " OrderID " ), new System.Data.Common.DataColumnMapping( " OrderDate " , " OrderDate " ), new System.Data.Common.DataColumnMapping( " ShipName " , " ShipName " ), new System.Data.Common.DataColumnMapping( " ShipAddress " , " ShipAddress " ), new System.Data.Common.DataColumnMapping( " ShipCity " , " ShipCity " ), new System.Data.Common.DataColumnMapping( " CustomerID " , " CustomerID " )})}); this .sqlDataAdapter2.UpdateCommand = this .sqlUpdateCommand2; // // sqlDeleteCommand2 // this .sqlDeleteCommand2.CommandText = @" DELETE FROM Orders WHERE (OrderID = @Original_OrderID) AND (CustomerID = @Original_CustomerID OR @Original_CustomerID IS NULL AND CustomerID IS NULL) AND (OrderDate = @Original_OrderDate OR @Original_OrderDate IS NULL AND OrderDate IS NULL) AND (ShipAddress = @Original_ShipAddress OR @Original_ShipAddress IS NULL AND ShipAddress IS NULL) AND (ShipCity = @Original_ShipCity OR @Original_ShipCity IS NULL AND ShipCity IS NULL) AND (ShipName = @Original_ShipName OR @Original_ShipName IS NULL AND ShipName IS NULL) " ; this .sqlDeleteCommand2.Connection = this .sqlConnection3; this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_OrderID " , System.Data.SqlDbType.Int, 4 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " OrderID " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CustomerID " , System.Data.SqlDbType.NVarChar, 5 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CustomerID " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_OrderDate " , System.Data.SqlDbType.DateTime, 8 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " OrderDate " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipAddress " , System.Data.SqlDbType.NVarChar, 60 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipAddress " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipCity " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipCity " , System.Data.DataRowVersion.Original, null )); this .sqlDeleteCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipName " , System.Data.SqlDbType.NVarChar, 40 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipName " , System.Data.DataRowVersion.Original, null )); // // sqlConnection3 // this .sqlConnection3.ConnectionString = " workstation id=/"FANCY-FAMILY/";packet size=4096;user id=sa;data source=/"FANCY-FAMI " + " LY/";persist security info=False;initial catalog=Northwind " ; // // sqlInsertCommand2 // this .sqlInsertCommand2.CommandText = @" INSERT INTO Orders(OrderDate, ShipName, ShipAddress, ShipCity, CustomerID) VALUES (@OrderDate, @ShipName, @ShipAddress, @ShipCity, @CustomerID); SELECT OrderID, OrderDate, ShipName, ShipAddress, ShipCity, CustomerID FROM Orders WHERE (OrderID = @@IDENTITY) " ; this .sqlInsertCommand2.Connection = this .sqlConnection3; this .sqlInsertCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @OrderDate " , System.Data.SqlDbType.DateTime, 8 , " OrderDate " )); this .sqlInsertCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipName " , System.Data.SqlDbType.NVarChar, 40 , " ShipName " )); this .sqlInsertCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipAddress " , System.Data.SqlDbType.NVarChar, 60 , " ShipAddress " )); this .sqlInsertCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipCity " , System.Data.SqlDbType.NVarChar, 15 , " ShipCity " )); this .sqlInsertCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CustomerID " , System.Data.SqlDbType.NVarChar, 5 , " CustomerID " )); // // sqlSelectCommand2 // this .sqlSelectCommand2.CommandText = " SELECT OrderID, OrderDate, ShipName, ShipAddress, ShipCity, CustomerID FROM Order " + " s " ; this .sqlSelectCommand2.Connection = this .sqlConnection3; // // sqlUpdateCommand2 // this .sqlUpdateCommand2.CommandText = @" UPDATE Orders SET OrderDate = @OrderDate, ShipName = @ShipName, ShipAddress = @ShipAddress, ShipCity = @ShipCity, CustomerID = @CustomerID WHERE (OrderID = @Original_OrderID) AND (CustomerID = @Original_CustomerID OR @Original_CustomerID IS NULL AND CustomerID IS NULL) AND (OrderDate = @Original_OrderDate OR @Original_OrderDate IS NULL AND OrderDate IS NULL) AND (ShipAddress = @Original_ShipAddress OR @Original_ShipAddress IS NULL AND ShipAddress IS NULL) AND (ShipCity = @Original_ShipCity OR @Original_ShipCity IS NULL AND ShipCity IS NULL) AND (ShipName = @Original_ShipName OR @Original_ShipName IS NULL AND ShipName IS NULL); SELECT OrderID, OrderDate, ShipName, ShipAddress, ShipCity, CustomerID FROM Orders WHERE (OrderID = @OrderID) " ; this .sqlUpdateCommand2.Connection = this .sqlConnection3; this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @OrderDate " , System.Data.SqlDbType.DateTime, 8 , " OrderDate " )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipName " , System.Data.SqlDbType.NVarChar, 40 , " ShipName " )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipAddress " , System.Data.SqlDbType.NVarChar, 60 , " ShipAddress " )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @ShipCity " , System.Data.SqlDbType.NVarChar, 15 , " ShipCity " )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @CustomerID " , System.Data.SqlDbType.NVarChar, 5 , " CustomerID " )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_OrderID " , System.Data.SqlDbType.Int, 4 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " OrderID " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_CustomerID " , System.Data.SqlDbType.NVarChar, 5 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " CustomerID " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_OrderDate " , System.Data.SqlDbType.DateTime, 8 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " OrderDate " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipAddress " , System.Data.SqlDbType.NVarChar, 60 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipAddress " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipCity " , System.Data.SqlDbType.NVarChar, 15 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipCity " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @Original_ShipName " , System.Data.SqlDbType.NVarChar, 40 , System.Data.ParameterDirection.Input, false , ((System.Byte)( 0 )), ((System.Byte)( 0 )), " ShipName " , System.Data.DataRowVersion.Original, null )); this .sqlUpdateCommand2.Parameters.Add( new System.Data.SqlClient.SqlParameter( " @OrderID " , System.Data.SqlDbType.Int, 4 , " OrderID " )); this .Button2.Click += new System.EventHandler( this .Button2_Click); this .Load += new System.EventHandler( this .Page_Load); ((System.ComponentModel.ISupportInitialize)( this .dsCustomers1)).EndInit(); ((System.ComponentModel.ISupportInitialize)( this .dv)).EndInit(); } #endregion private void DataGrid1_EditCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { testWorkFlow = "" ; DataGrid1.EditItemIndex = e.Item.ItemIndex; bindDate(); } private void DataGrid1_CancelCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { DataGrid1.EditItemIndex =- 1 ; bindDate(); } private void DataGrid1_UpdateCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { // 注意:e.Item.Cells[0].Text ;是引用不到任何值的,即每次的状态改变都将引发该状态下的数据,不可以跨越状态的获取 // 现在是处于编辑状态,所以只能通过类型转换来获取textbox里的值 // ((TextBox)e.Item.Cells[1].Controls[0]).Text // CustomerID设置为只读,在编辑状态下,仍然处于label状态,只能用e.Item.Cells[0].Text;来获取单元格中的值 string strCustomerID = e.Item.Cells[ 1 ].Text; string strCompanyName = ((TextBox)e.Item.Cells[ 2 ].Controls[ 0 ]).Text ; string strContactName = ((TextBox)e.Item.Cells[ 3 ].Controls[ 0 ]).Text ; string strCity = ((TextBox)e.Item.Cells[ 4 ].Controls[ 0 ]).Text ; // 在编辑状态调用模版列有两种方式: // 1)((TextBox)e.Item.Cells[4].Controls[1]).Text; 注意必须是Control[1]不是[0] control[0]是一个{System.Web.UI.LiteralControl}, Text: "/r/n/t/t/t/t/t/t/t/t" // 2)((TextBox)e.Item.FindControl["控件id"]).Text; FindControl可以查找该单元内的任何一个控件id string strCoutry = ((TextBox)e.Item.Cells[ 5 ].Controls[ 1 ]).Text ; string strPhone = ((TextBox)e.Item.Cells[ 6 ].Controls[ 0 ]).Text ; sqlDataAdapter1.Fill(dsCustomers1, " Customers " ); dsCustomerRow = dsCustomers1.Customers.FindByCustomerID(strCustomerID); dsCustomerRow.CompanyName = strCompanyName; dsCustomerRow.ContactName = strContactName; dsCustomerRow.City = strCity; dsCustomerRow.Country = strCoutry; dsCustomerRow.Phone = strPhone; sqlDataAdapter1.Update(dsCustomers1, " Customers " ); dsCustomers1.AcceptChanges(); DataGrid1.EditItemIndex =- 1 ; bindDate(); // e.Item.ItemIndex } private void DataGrid1_DeleteCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { string CustomersID = e.Item.Cells[ 0 ].Text; } private void DataGrid1_DataBinding( object sender, System.EventArgs e) { Response.Write(e.ToString()); } private void DataGrid1_ItemCommand( object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if (e.CommandName == " alpha " ) { ViewState[ " alpha " ] = e.CommandArgument; m_CreatePageTimes = 0 ; DataGrid1.CurrentPageIndex = 0 ; bindDate(); } if (e.CommandName == " Cancle " ) { DataGrid1.ShowFooter = false ; } if (e.CommandName == " Insert " ) { sqlDataAdapter1.Fill(dsCustomers1); dsCustomerRow = (dsCustomers.CustomersRow)dsCustomers1.Customers.NewRow(); dsCustomerRow.CustomerID = ((TextBox)e.Item.Cells[ 1 ].Controls[ 0 ]).Text ; dsCustomerRow.CompanyName = ((TextBox)e.Item.Cells[ 2 ].Controls[ 0 ]).Text; dsCustomerRow.ContactName = ((TextBox)e.Item.Cells[ 3 ].Controls[ 0 ]).Text; dsCustomerRow.City = ((TextBox)e.Item.Cells[ 4 ].Controls[ 0 ]).Text; dsCustomerRow.Country = ((TextBox)e.Item.Cells[ 5 ].Controls[ 0 ]).Text; dsCustomerRow.Phone = ((TextBox)e.Item.Cells[ 6 ].Controls[ 0 ]).Text; dsCustomers1.Customers.AddCustomersRow(dsCustomerRow); sqlDataAdapter1.Update(dsCustomers1, " Customers " ); dsCustomers1.AcceptChanges(); DataBind(); DataGrid1.ShowFooter = false ; } if (e.CommandName == " Expand " ) { ExpandItem(e.Item); } } private void ExpandItem(DataGridItem item) { if (item.ItemIndex == (ExpandedItem % DataGrid1.PageSize)) SetExpandedItem(item, false ); else SetExpandedItem(item, true ); } // Adjust the index of the expanded item private void SetExpandedItem(DataGridItem item, bool expand) { if (expand) ExpandedItem = (DataGrid1.PageSize * DataGrid1.CurrentPageIndex + item.ItemIndex); else ExpandedItem = - 1 ; } private void DataGrid1_PreRender( object sender, System.EventArgs e) { } public string testWorkFlow = "" ; private int m_CreatePageTimes = 0 ; private void DataGrid1_ItemCreated( object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { testWorkFlow += e.Item.ItemType.ToString() + " -> " ; if (e.Item.ItemType == ListItemType.Header) { // 排序 foreach (TableCell c in e.Item.Cells) { if (c.Controls.Count > 0 && c.Controls[ 0 ].GetType().ToString() == " System.Web.UI.WebControls.DataGridLinkButton " ) { if (((LinkButton)c.Controls[ 0 ]).Text == ( string )ViewState[ " Sort " ]) { Label l = new Label(); l.Font.Name = " Webdings " ; if (( string )ViewState[ " orderby " ] == " asc " ) l.Text = " 5 " ; else l.Text = " 6 " ; c.Controls.Add(l); } } } } if (e.Item.ItemType == ListItemType.Footer) { int i = 0 ;LinkButton lb; foreach (TableCell c in e.Item.Cells) { if (i == 0 ) c.Controls.Add( new CheckBox()); else if (i == e.Item.Cells.Count - 2 ) { lb = new LinkButton(); lb.Text = " 插入 " ; lb.CommandName = " Insert " ; c.Controls.Add(lb); } else if (i == e.Item.Cells.Count - 1 ) { lb = new LinkButton(); lb.Text = " 取消 " ; lb.CommandName = " Cancle " ; c.Controls.Add(lb); } else c.Controls.Add( new TextBox()); i ++ ; } } if (e.Item.ItemType == ListItemType.Pager) { if (m_CreatePageTimes == 0 ) { e.Item.Cells[ 0 ].Controls.Clear(); LinkButton l; for ( int i = 65 ;i < 65 + 25 ;i ++ ) { l = new LinkButton(); LiteralControl lc = new LiteralControl(); lc.Text = " " ; l.CommandName = " alpha " ; l.CommandArgument = Convert.ToChar(i).ToString(); l.Text = Convert.ToChar(i).ToString(); e.Item.Cells[ 0 ].Controls.Add(l); e.Item.Cells[ 0 ].Controls.Add(lc); } l = new LinkButton(); l.Text = " All " ; l.CommandName = " alpha " ; l.CommandArgument = "" ; e.Item.Cells[ 0 ].Controls.Add(l); m_CreatePageTimes ++ ; } else if (m_CreatePageTimes == 1 ) { foreach (Control ct in e.Item.Cells[ 0 ].Controls) { switch (ct.GetType().ToString()) { case " System.Web.UI.WebControls.Label " : { Label l = (Label)ct; l.Text = " 当前页[ " + l.Text + " ] " ; break ; } case " System.Web.UI.LiteralControl " : { LiteralControl lc = (LiteralControl)ct; lc.Text = " | " ; break ; } case " System.Web.UI.WebControls.DataGridLinkButton " : { LinkButton lb = (LinkButton)ct; if (e.Item.Cells[ 0 ].Controls.IndexOf(ct) == 0 && lb.Text == " ... " ) lb.Text = " [向前翻页] " ; else if (e.Item.Cells[ 0 ].Controls.IndexOf(ct) == e.Item.Cells[ 0 ].Controls.Count - 1 && lb.Text == " ... " ) lb.Text = " [向后翻页] " ; else lb.Text = " 第[ " + lb.Text + " ]页 " ; break ; } } } } } } private void DataGrid1_PageIndexChanged( object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { DataGrid1.CurrentPageIndex = e.NewPageIndex; m_CreatePageTimes = 0 ; bindDate(); } private void Button1_Click( object sender, System.EventArgs e) { Response.Write(testWorkFlow + " End " ); } private void DataGrid1_SortCommand( object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) { ViewState[ " Sort " ] = e.SortExpression; if (( string )ViewState[ " orderby " ] == " asc " ) ViewState[ " orderby " ] = " desc " ; else ViewState[ " orderby " ] = " asc " ; m_CreatePageTimes = 0 ; bindDate(); } private void DataGrid1_ItemDataBound( object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { } public void Check_Changed( object sender,System.EventArgs e) { CheckBox chk = (CheckBox)sender; DataGridItem dgi; dgi = (DataGridItem)chk.Parent.Parent; if (chk.Checked) { dgi.BackColor = DataGrid1.SelectedItemStyle.BackColor; dgi.ForeColor = DataGrid1.SelectedItemStyle.ForeColor; } else { dgi.BackColor = DataGrid1.ItemStyle.BackColor; dgi.ForeColor = DataGrid1.ItemStyle.ForeColor; } } private void BtnInsertOneRow_Click( object sender, System.EventArgs e) { DataGrid1.ShowFooter = true ; } private void BtnDeleteGrouply_Click( object sender, System.EventArgs e) { sqlDataAdapter1.Fill(dsCustomers1, " Customers " ); foreach (DataGridItem dgi in DataGrid1.Items) { CheckBox chk = (CheckBox)dgi.Cells[ 0 ].Controls[ 1 ]; if (chk.Checked == true ) { string CustomerID = dgi.Cells[ 1 ].Text; dsCustomerRow = dsCustomers1.Customers.FindByCustomerID(CustomerID); dsCustomerRow.Delete(); } } sqlDataAdapter1.Update(dsCustomers1); dsCustomers1.AcceptChanges(); } private void Button2_Click( object sender, System.EventArgs e) { string CustomerID = "" ; foreach (DataGridItem dgi in DataGrid1.Items) { if (((CheckBox)dgi.Cells[ 0 ].FindControl( " chkOne " )).Checked == true ) CustomerID += dgi.Cells[ 1 ].Text; } Response.Write(CustomerID); } } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值