// 目前功能:编辑、排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分、排序、分页 1.html代码
< HTML > < HEAD > < title > DatagridTest </ title > < meta content ="Microsoft Visual Studio .NET 7.1" name ="GENERATOR" > < meta content ="C#" name ="CODE_LANGUAGE" > < meta content ="JavaScript" name ="vs_defaultClientScript" > < meta content ="http://schemas.microsoft.com/intellisense/ie5" name ="vs_targetSchema" > < script language ="javascript" > function fun_option(obj) { document.Form1.hiduserid.value = obj.value; } function chkAll_true() { var chkall = document.all[ " chkAll " ]; var chkother = document.getElementsByTagName( " input " ); for ( var i = 0 ;i < chkother.length;i ++ ) { if ( chkother[i].type == 'checkbox') { if (chkother[i].id.indexOf('chkExport') >- 1 ) { if (chkall.checked == true ) { chkother[i].checked = true ; } else { chkother[i].checked = false ; } } } } } function Delete() { var al = new Array(); var chkother = document.getElementsByTagName( " input " ); for ( var i = 0 ,j = 0 ;i < chkother.length;i ++ ) { if ( chkother[i].type == 'checkbox') { if (chkother[i].id.indexOf('chkExport') >- 1 ) { if (chkother[i].checked == true ) { al[j] = chkother[i].value; j ++ ; } } } } if (al == "" ) { alert('You need to select a row in the list before selecting Delete.\r\nPlease select a row and try again.'); } else if (window.confirm( " Are you sure to delete all these? " )) { var deleteID = ' <%= btndelete.ClientID %> '; window.document.all(deleteID).click(); } else { return false; } } </ script > </ HEAD > < body > < form id ="Form1" method ="post" runat ="server" > < TABLE id ="Table1" height ="100%" cellSpacing ="1" cellPadding ="1" width ="100%" border ="1" > < tr > < td >< asp:dropdownlist id ="DropDownList1" runat ="server" AutoPostBack ="True" ></ asp:dropdownlist >< asp:dropdownlist id ="DropDownList2" runat ="server" AutoPostBack ="True" ></ asp:dropdownlist >< asp:dropdownlist id ="DropDownList3" runat ="server" ></ asp:dropdownlist >< asp:textbox id ="TextBox1" runat ="server" ></ asp:textbox >< asp:checkbox id ="CheckBox1" runat ="server" Text ="可见否" ></ asp:checkbox >< asp:button id ="Button1" runat ="server" Text ="保存" ></ asp:button >< asp:button id ="Button2" runat ="server" Text ="导出Excel" ></ asp:button ></ td > </ tr > < tr height ="30" > < td >< INPUT id ="chkAll" onclick ="chkAll_true()" type ="checkbox" > 全选/取消 < asp:button id ="btndelete" runat ="server" Text ="删除" ></ asp:button ></ td > </ tr > < TR vAlign ="top" > < TD width ="100%" colSpan ="5" >< asp:datagrid id ="DataGrid1" runat ="server" OnDeleteCommand ="Delete" ForeColor ="Black" GridLines ="None" CellPadding="2" BackColor ="LightGoldenrodYellow" BorderWidth ="1px" BorderColor ="Tan" AllowSorting ="True" AutoGenerateColumns ="False" DataKeyField="UserID" OnUpdateCommand ="Update" OnCancelCommand ="Cancel" OnEditCommand ="Edit" PageSize ="5" AllowPaging ="True" > < FooterStyle BackColor ="Tan" ></ FooterStyle > < SelectedItemStyle ForeColor ="GhostWhite" BackColor ="DarkSlateBlue" ></ SelectedItemStyle > < AlternatingItemStyle BackColor ="PaleGoldenrod" ></ AlternatingItemStyle > < HeaderStyle Font-Bold ="True" BackColor ="Tan" ></ HeaderStyle > < Columns > < asp:TemplateColumn HeaderText ="序号" > < HeaderStyle Width ="10px" ></ HeaderStyle > < ItemTemplate > < INPUT id =radio onclick =fun_option(this) type =radio value ='<%# DataBinder.Eval(Container.DataItem,"UserID") % > ' name=radio> </ ItemTemplate > < FooterTemplate > </ FooterTemplate > </ asp:TemplateColumn > < asp:TemplateColumn HeaderText ="序号" > < HeaderStyle Width ="10px" ></ HeaderStyle > < FooterTemplate > </ FooterTemplate > </ asp:TemplateColumn > < asp:TemplateColumn > < HeaderStyle Width ="10px" ></ HeaderStyle > < ItemTemplate > < asp:CheckBox id ="chkExport" Runat ="server" ></ asp:CheckBox > </ ItemTemplate > </ asp:TemplateColumn > < asp:BoundColumn DataField ="UserID" SortExpression ="UserID" ReadOnly ="True" HeaderText ="UserID" > < HeaderStyle Width ="70px" ></ HeaderStyle > </ asp:BoundColumn > < asp:TemplateColumn SortExpression ="UserName" HeaderText ="姓名" > < HeaderStyle Width ="70px" ></ HeaderStyle > < ItemTemplate > < a href ='form1.aspx?id=<%# DataBinder.Eval(Container.DataItem,"UserID") % > &name = <% # DataBinder.Eval(Container.DataItem, " UserName " ) %> ' target="_blank"> <% # DataBinder.Eval(Container.DataItem, " UserName " ) %> </ a > </ ItemTemplate > < EditItemTemplate > < asp:TextBox id =UserName Text ='<%# DataBinder.Eval(Container.DataItem,"UserName") % > ' Width="100%" Runat="server"> </ asp:TextBox > </ EditItemTemplate > </ asp:TemplateColumn > < asp:TemplateColumn SortExpression ="province" HeaderText ="省市" > < HeaderStyle Width ="70px" ></ HeaderStyle > < ItemTemplate > <% # DataBinder.Eval(Container.DataItem, " province " ) %> </ ItemTemplate > < EditItemTemplate > < asp:DropDownList id ="province" Width ="100%" Runat ="server" AutoPostBack ="True" OnSelectedIndexChanged ="ddlprovince_SelectedIndexChanged" ></ asp:DropDownList > </ EditItemTemplate > </ asp:TemplateColumn > < asp:TemplateColumn SortExpression ="city" HeaderText ="县市" > < HeaderStyle Width ="70px" ></ HeaderStyle > < ItemTemplate > <% # DataBinder.Eval(Container.DataItem, " city " ) %> </ ItemTemplate > < EditItemTemplate > < asp:DropDownList id ="city" Runat ="server" Width ="100%" AutoPostBack ="True" OnSelectedIndexChanged ="ddlcity_SelectedIndexChanged" ></ asp:DropDownList > </ EditItemTemplate > </ asp:TemplateColumn > < asp:TemplateColumn SortExpression ="area" HeaderText ="乡镇" > < HeaderStyle Width ="70px" ></ HeaderStyle > < ItemTemplate > <% # DataBinder.Eval(Container.DataItem, " area " ) %> </ ItemTemplate > < EditItemTemplate > < asp:DropDownList id ="area" Runat ="server" Width ="100%" ></ asp:DropDownList > </ EditItemTemplate > </ asp:TemplateColumn > < asp:TemplateColumn SortExpression ="Enabled" HeaderText ="可见否" > < HeaderStyle Width ="70px" ></ HeaderStyle > < ItemTemplate > <% # DataBinder.Eval(Container.DataItem, " Enabled " ) %> </ ItemTemplate > < EditItemTemplate > < asp:CheckBox id =chkenabled Runat ="server" Checked ='<%# DataBinder.Eval(Container.DataItem,"Enabled") % > '> </ asp:CheckBox > </ EditItemTemplate > </ asp:TemplateColumn > < asp:EditCommandColumn ButtonType ="PushButton" UpdateText ="更新" HeaderText ="编辑" CancelText ="取消" EditText ="编辑" ></ asp:EditCommandColumn > < asp:ButtonColumn Text ="删除" ButtonType ="PushButton" HeaderText ="删除" CommandName ="Delete" ></ asp:ButtonColumn > </ Columns > < PagerStyle NextPageText ="下一页" PrevPageText ="上一页" HorizontalAlign ="Right" ForeColor ="DarkSlateBlue" BackColor="PaleGoldenrod" Mode ="NumericPages" ></ PagerStyle > </ asp:datagrid ></ TD > </ TR > < tr height ="30" > < td ></ td > </ tr > </ TABLE > < INPUT id ="hiduserid" type ="hidden" runat ="server" > </ form > </ body > </ HTML > 2.cs代码
using System.Data.SqlClient; using System.Text;
public class DatagridTest : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; protected System.Web.UI.HtmlControls.HtmlInputHidden hiduserid; protected System.Web.UI.WebControls.Button btndelete; protected System.Web.UI.WebControls.DropDownList DropDownList1; protected System.Web.UI.WebControls.DropDownList DropDownList2; protected System.Web.UI.WebControls.DropDownList DropDownList3; protected System.Web.UI.WebControls.CheckBox CheckBox1; protected System.Web.UI.WebControls.TextBox TextBox1; protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2; private string constring = "" ; private void Page_Load( object sender, System.EventArgs e) { if ( ! Page.IsPostBack) { ListProvince(); ListCity(); ListArea(); btndelete.Attributes.Add( " onclick " , "return Delete(); " ); SortExpression = "" ; sort = " desc " ; DataBind(); } } DataBind #region DataBind private void DataBind() { string sql = " select a.UserID,a.UserName,b.province,c.city,d.area,a.Enabled,b.provinceID,c.cityID,d.areaID from testgrid a " ; sql += " left join province b on a.provinceID=b.provinceID " ; sql += " left join city c on a.cityID=c.cityID " ; sql += " left join area d on a.areaID=d.areaID " ; DataSet ds = GetDataSet(sql); dt = ds.Tables[ 0 ]; dt.DefaultView.Sort = " UserID asc " ; dt.AcceptChanges(); this .DataGrid1.DataSource = dt; this .DataGrid1.DataBind(); DataTable dt1 = new DataTable(); dt1 = (DataTable)(DataGrid1.DataSource); } #endregion Web Form Designer generated code #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); this .DataGrid1.ItemDataBound += new DataGridItemEventHandler(DataGrid1_ItemDataBound); this .DataGrid1.SortCommand += new DataGridSortCommandEventHandler(DataGrid1_SortCommand); this .DataGrid1.ItemCreated += new DataGridItemEventHandler(DataGrid1_ItemCreated); this .DataGrid1.PageIndexChanged += new DataGridPageChangedEventHandler(DataGrid1_PageIndexChanged); this .btndelete.Click += new System.EventHandler( this .btndelete_Click); this .DropDownList1.SelectedIndexChanged += new System.EventHandler( this .DropDownList1_SelectedIndexChanged); this .DropDownList2.SelectedIndexChanged += new System.EventHandler( this .DropDownList2_SelectedIndexChanged); this .Button1.Click += new System.EventHandler( this .Button1_Click); this .Button2.Click += new System.EventHandler( this .Button2_Click); } /**/ /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this .DropDownList1.SelectedIndexChanged += new System.EventHandler( this .DropDownList1_SelectedIndexChanged); this .DropDownList2.SelectedIndexChanged += new System.EventHandler( this .DropDownList2_SelectedIndexChanged); this .Button1.Click += new System.EventHandler( this .Button1_Click); this .Button2.Click += new System.EventHandler( this .Button2_Click); this .Load += new System.EventHandler( this .Page_Load); } #endregion GetDataSet #region GetDataSet private DataSet GetDataSet( string sql) { constring = System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ]; SqlDataAdapter sda = new SqlDataAdapter(sql,constring); DataSet ds = new DataSet(); sda.Fill(ds); return ds; } #endregion DataGrid1_ItemDataBound #region DataGrid1_ItemDataBound private void DataGrid1_ItemDataBound( object sender, DataGridItemEventArgs e) { e.Item.Cells[ 1 ].Text = Convert.ToString(e.Item.ItemIndex + 1 ); // 产生序号 if (e.Item.ItemType != ListItemType.Header) { if (e.Item.ItemIndex % 2 == 0 ) { e.Item.Attributes.Add( " onmouseout " , " this.style.backgroundColor='PaleGoldenrod' " ); } else { e.Item.Attributes.Add( " onmouseout " , " this.style.backgroundColor='LightGoldenrodYellow' " ); } e.Item.Attributes.Add( " onmouseover " , " this.style.backgroundColor='#C1D2EE' " ); } switch (e.Item.ItemType) { case ListItemType.Item: case ListItemType.AlternatingItem: e.Item.Attributes.Add( " ondblclick " , " alert(' " + e.Item.ItemIndex + " '); " ); break ; case ListItemType.Header: e.Item.Cells[ 0 ].ColumnSpan = 2 ; // 合并单元格 e.Item.Cells[ 1 ].Visible = false ; break ; case ListItemType.EditItem: for ( int i = 4 ; i < DataGrid1.Columns.Count - 2 ; i ++ ) // 只调整被编辑的列 { if (e.Item.ItemType == ListItemType.EditItem) { e.Item.Cells[i].Attributes.Add( " Width " , " 70px " ); } } string sqlprovince = " select * from province " ; DataSet dsprovince = GetDataSet(sqlprovince); // 一级 if (e.Item.ItemType == ListItemType.EditItem) { DropDownList ddlprovince = (DropDownList)e.Item.FindControl( " province " ); ddlprovince.DataSource = dsprovince; ddlprovince.DataTextField = " province " ; ddlprovince.DataValueField = " provinceID " ; ddlprovince.DataBind(); ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem, " provinceID " ))).Selected = true ; // 二级 if (e.Item.ItemType == ListItemType.EditItem) { if (ddlprovince.SelectedIndex !=- 1 ) { string sqlcity = " select * from city where father=' " + ddlprovince.SelectedValue + " ' " ; DropDownList ddlcity = (DropDownList)e.Item.FindControl( " city " ); DataSet dscity = GetDataSet(sqlcity); ddlcity.DataSource = dscity; ddlcity.DataTextField = " city " ; ddlcity.DataValueField = " cityID " ; ddlcity.DataBind(); ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem, " cityID " ))).Selected = true ; // 三级 if (e.Item.ItemType == ListItemType.EditItem) { if (ddlcity.SelectedIndex !=- 1 ) { string sqlarea = " select * from area where father=' " + ddlcity.SelectedValue + " ' " ; DropDownList ddlarea = (DropDownList)e.Item.FindControl( " area " ); DataSet dsarea = GetDataSet(sqlarea); ddlarea.DataSource = dsarea; ddlarea.DataTextField = " area " ; ddlarea.DataValueField = " areaID " ; ddlarea.DataBind(); ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem, " areaID " ))).Selected = true ; } } } } } break ; default : break ; } } #endregion DataGrid1_SortCommand #region DataGrid1_SortCommand private void DataGrid1_SortCommand( object source, DataGridSortCommandEventArgs e) { if (SortExpression == e.SortExpression.ToString()) { if (sort == " asc " ) { sort = " desc " ; } else { sort = " asc " ; } } else { if (sort == " asc " ) { sort = " desc " ; } else { sort = " asc " ; } } SortExpression= e.SortExpression; dt.DefaultView.Sort = e.SortExpression + " " + sort; DataGrid1.DataSource = dt; DataGrid1.DataBind(); } #endregion DataGrid1_ItemCreated #region DataGrid1_ItemCreated private void DataGrid1_ItemCreated( object sender, DataGridItemEventArgs e) { for ( int i = 3 ; i < DataGrid1.Columns.Count - 2 ; i ++ ) // -2的意思是两个button列不用排序 { if (i == 0 ) continue ; if (e.Item.ItemIndex ==- 1 ) { if (DataGrid1.Columns[i].SortExpression == SortExpression) { try { TableCell tableCell = e.Item.Cells[i]; Label label = new Label(); label.Font.Name = " webdings " ; if (sort == " asc " ) { label.Text = " 6 " ; } else { label.Text = " 5 " ; } label.Width = 20 ; tableCell.Controls.Add(label); } catch {} } } } foreach (DataGridItem di in this .DataGrid1.Items) { if (di.ItemType == ListItemType.Item || di.ItemType == ListItemType.AlternatingItem) { ((Button)di.Cells[ 10 ].Controls[ 0 ]).Attributes.Add( " onclick " , " return confirm('确认删除此项吗?'); " ); } } } #endregion property #region property private DataTable dt { get { if (ViewState[ " dt " ] != null ) { return (DataTable)ViewState[ " dt " ]; } else { return null ; } } set { ViewState[ " dt " ] = value; } } private string SortExpression { get { if (ViewState[ " SortExpression " ] != null && ViewState[ " SortExpression " ].ToString() != string .Empty) { return ViewState[ " SortExpression " ].ToString(); } else { return "" ; } } set { ViewState[ " SortExpression " ] = value; } } private string sort { get { if (ViewState[ " sort " ] != null && ViewState[ " sort " ].ToString() != string .Empty) { return ViewState[ " sort " ].ToString(); } else { return "" ; } } set { ViewState[ " sort " ] = value; } } #endregion Edit #region Edit protected void Edit( object sender,DataGridCommandEventArgs e) { this .DataGrid1.EditItemIndex = e.Item.ItemIndex; DataBind(); } #endregion Cancel #region Cancel protected void Cancel( object sender,DataGridCommandEventArgs e) { this .DataGrid1.EditItemIndex =- 1 ; DataBind(); } #endregion Update #region Update protected void Update( object sender,DataGridCommandEventArgs e) { if (e.Item.ItemType == ListItemType.EditItem) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ]); SqlCommand comm = new SqlCommand( " update testgrid set UserName=@UserName,provinceID=@province,cityID=@city,areaID=@area,Enabled=@Enabled where UserID=@UserID " ,conn); SqlParameter parm1 = new SqlParameter( " @UserName " ,SqlDbType.NVarChar, 50 ); parm1.Value = ((TextBox)e.Item.FindControl( " UserName " )).Text; SqlParameter parm2 = new SqlParameter( " @province " ,SqlDbType.NVarChar, 50 ); parm2.Value = ((DropDownList)e.Item.FindControl( " province " )).SelectedValue; SqlParameter parm3 = new SqlParameter( " @city " ,SqlDbType.NVarChar, 50 ); parm3.Value = ((DropDownList)e.Item.FindControl( " city " )).SelectedValue; SqlParameter parm4 = new SqlParameter( " @area " ,SqlDbType.NVarChar, 50 ); parm4.Value = ((DropDownList)e.Item.FindControl( " area " )).SelectedValue; SqlParameter parm5 = new SqlParameter( " @Enabled " ,SqlDbType.Bit); parm5.Value = ((CheckBox)e.Item.FindControl( " chkenabled " )).Checked; SqlParameter parm6 = new SqlParameter( " @UserID " ,SqlDbType.Int); parm6.Value = this .DataGrid1.DataKeys[e.Item.ItemIndex]; comm.Parameters.Add(parm1); comm.Parameters.Add(parm2); comm.Parameters.Add(parm3); comm.Parameters.Add(parm4); comm.Parameters.Add(parm5); comm.Parameters.Add(parm6); conn.Open(); comm.ExecuteNonQuery(); conn.Close(); this .DataGrid1.EditItemIndex =- 1 ; DataBind(); } } #endregion Delete event #region Delete event protected void Delete( object sender,DataGridCommandEventArgs e) { delete( this .DataGrid1.DataKeys[e.Item.ItemIndex].ToString()); } #endregion ddlprovince_SelectedIndexChanged #region ddlprovince_SelectedIndexChanged public void ddlprovince_SelectedIndexChanged( object sender, EventArgs e) { DropDownList ddlprovince = sender as DropDownList; if (ddlprovince.SelectedIndex !=- 1 ) { DropDownList ddlcity = ((Control)(((Control)sender)).Parent).FindControl( " city " ) as DropDownList; string sqlcity = " select * from city where father=' " + ddlprovince.SelectedValue + " ' " ; DataSet dscity = GetDataSet(sqlcity); ddlcity.DataSource = dscity; ddlcity.DataTextField = " city " ; ddlcity.DataValueField = " cityID " ; ddlcity.DataBind(); } } #endregion ddlcity_SelectedIndexChanged #region ddlcity_SelectedIndexChanged public void ddlcity_SelectedIndexChanged( object sender, EventArgs e) { DropDownList ddlcity = sender as DropDownList; if (ddlcity.SelectedIndex !=- 1 ) { DropDownList ddlarea = ((Control)(((Control)sender)).Parent).FindControl( " city " ) as DropDownList; string sqlarea = " select * from area where father=' " + ddlcity.SelectedValue + " ' " ; DataSet dsarea = GetDataSet(sqlarea); ddlarea.DataSource = dsarea; ddlarea.DataTextField = " area " ; ddlarea.DataValueField = " areaID " ; ddlarea.DataBind(); } } #endregion btndelete_Click #region btndelete_Click private void btndelete_Click( object sender, System.EventArgs e) { StringBuilder s = new StringBuilder(); foreach (DataGridItem di in DataGrid1.Items) { if (((CheckBox)(di.FindControl( " chkExport " ))).Checked == true ) { s.Append( " , " ).Append(DataGrid1.DataKeys[di.ItemIndex].ToString()); } } if (s.ToString().StartsWith( " , " ) == true ) { delete(s.ToString().Substring( 1 ,s.ToString().Length - 1 )); } } #endregion delete #region delete private void delete( string id) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ]); string sql = @" declare @sql nvarchar(400) set @sql = 'delete from testgrid where UserID in('+@UserID+')' exec( @sql) " ; SqlCommand comm = new SqlCommand(sql,conn); SqlParameter parm1 = new SqlParameter( " @UserID " ,SqlDbType.VarChar, 200 ); parm1.Value = id; comm.Parameters.Add(parm1); conn.Open(); comm.ExecuteNonQuery(); conn.Close(); DataBind(); } #endregion ListProvince #region ListProvince private void ListProvince() { string sql = " select * from province " ; DataSet ds = GetDataSet(sql); DropDownList1.DataSource = ds; DropDownList1.DataTextField = " province " ; DropDownList1.DataValueField = " provinceID " ; DropDownList1.DataBind(); } #endregion ListCity #region ListCity private void ListCity() { if (DropDownList1.SelectedIndex !=- 1 ) { string sql = " select * from city where father=' " + DropDownList1.SelectedValue + " ' " ; DataSet ds = GetDataSet(sql); DropDownList2.DataSource = ds; DropDownList2.DataTextField = " city " ; DropDownList2.DataValueField = " cityID " ; DropDownList2.DataBind(); } } #endregion ListArea #region ListArea private void ListArea() { if (DropDownList2.SelectedIndex !=- 1 ) { string sql = " select * from area where father=' " + DropDownList2.SelectedValue + " ' " ; DataSet ds = GetDataSet(sql); DropDownList3.DataSource = ds; DropDownList3.DataTextField = " area " ; DropDownList3.DataValueField = " areaID " ; DropDownList3.DataBind(); } } #endregion save #region save private void Button1_Click( object sender, System.EventArgs e) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ " ConnectionString " ]); SqlCommand comm = new SqlCommand( " insert into testgrid (UserName,provinceID,cityID,areaID,Enabled) values(@UserName,@provinceID,@cityID,@areaID,@Enabled) " ,conn); SqlParameter parm1 = new SqlParameter( " @UserName " ,SqlDbType.NVarChar, 50 ); parm1.Value = this .TextBox1.Text; SqlParameter parm2 = new SqlParameter( " @provinceID " ,SqlDbType.NVarChar, 50 ); parm2.Value = this .DropDownList1.SelectedValue; SqlParameter parm3 = new SqlParameter( " @cityID " ,SqlDbType.NVarChar, 50 ); parm3.Value = this .DropDownList2.SelectedValue; SqlParameter parm4 = new SqlParameter( " @areaID " ,SqlDbType.NVarChar, 50 ); parm4.Value = this .DropDownList3.SelectedValue; SqlParameter parm5 = new SqlParameter( " @Enabled " ,SqlDbType.Bit); parm5.Value = this .CheckBox1.Checked; comm.Parameters.Add(parm1); comm.Parameters.Add(parm2); comm.Parameters.Add(parm3); comm.Parameters.Add(parm4); comm.Parameters.Add(parm5); conn.Open(); comm.ExecuteNonQuery(); conn.Close(); DataBind(); } #endregion private void DropDownList1_SelectedIndexChanged( object sender, System.EventArgs e) { ListCity(); } private void DropDownList2_SelectedIndexChanged( object sender, System.EventArgs e) { ListArea(); } private void Button2_Click( object sender, System.EventArgs e) { ToExcel( this .DataGrid1, " meng " ); } ToExcel #region ToExcel public static void ToExcel(System.Web.UI.Control ctl, string FileName) { HttpContext.Current.Response.Charset = " UTF-8 " ; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default; HttpContext.Current.Response.ContentType = " application/ms-excel " ; HttpContext.Current.Response.AppendHeader( " Content-Disposition " , " attachment;filename= " + "" + FileName + " .xls " ); ctl.Page.EnableViewState = false ; System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); ctl.RenderControl(hw); HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.End(); } #endregion private void DataGrid1_PageIndexChanged( object source, DataGridPageChangedEventArgs e) { this .DataGrid1.CurrentPageIndex = e.NewPageIndex; DataBind(); } }3. 数据库教本(或下载真实数据
/Files/singlepine/area.rar )
if exists ( select * from dbo.sysobjects where id = object_id (N ' [dbo].[TestGrid] ' ) and OBJECTPROPERTY (id, N ' IsUserTable ' ) = 1 ) drop table [ dbo ] . [ TestGrid ] GO if exists ( select * from dbo.sysobjects where id = object_id (N ' [dbo].[province] ' ) and OBJECTPROPERTY (id, N ' IsUserTable ' ) = 1 ) drop table [ dbo ] . [ province ] GO if exists ( select * from dbo.sysobjects where id = object_id (N ' [dbo].[city] ' ) and OBJECTPROPERTY (id, N ' IsUserTable ' ) = 1 ) drop table [ dbo ] . [ city ] GO if exists ( select * from dbo.sysobjects where id = object_id (N ' [dbo].[area] ' ) and OBJECTPROPERTY (id, N ' IsUserTable ' ) = 1 ) drop table [ dbo ] . [ area ] GO CREATE TABLE [ dbo ] . [ TestGrid ] ( [ UserID ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL , [ UserName ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ provinceID ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ cityID ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ areaID ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ Enabled ] [ bit ] NULL ) ON [ PRIMARY ] GO CREATE TABLE [ dbo ] . [ province ] ( [ id ] [ int ] NOT NULL , [ provinceID ] [ nvarchar ] ( 6 ) COLLATE Chinese_PRC_CI_AS NULL , [ province ] [ nvarchar ] ( 40 ) COLLATE Chinese_PRC_CI_AS NULL ) ON [ PRIMARY ] GO CREATE TABLE [ dbo ] . [ city ] ( [ id ] [ int ] NOT NULL , [ cityID ] [ nvarchar ] ( 6 ) COLLATE Chinese_PRC_CI_AS NULL , [ city ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ father ] [ nvarchar ] ( 6 ) COLLATE Chinese_PRC_CI_AS NULL ) ON [ PRIMARY ] GO CREATE TABLE [ dbo ] . [ area ] ( [ id ] [ int ] NOT NULL , [ areaID ] [ nvarchar ] ( 50 ) COLLATE Chinese_PRC_CI_AS NULL , [ area ] [ nvarchar ] ( 60 ) COLLATE Chinese_PRC_CI_AS NULL , [ father ] [ nvarchar ] ( 6 ) COLLATE Chinese_PRC_CI_AS NULL ) ON [ PRIMARY ] GO 4.源代码下载
/Files/singlepine/datagrid.rar
Feedback
<INPUT id=radio onclick=fun_option(this) type=radio value='<%# DataBinder.Eval(Container.DataItem,"UserID") %>' name=radio>
这里!!!
能告诉我怎么回事吗?
QQ:157686528 回复
谢谢!
我的msn:julianpeng@hotmail.com
“/exercise”应用程序中的服务器错误。
--------------------------------------------------------------------------------
ConnectionString 属性尚未初始化。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: ConnectionString 属性尚未初始化。
源错误:
行 85: SqlDataAdapter sda =new SqlDataAdapter(sql,constring);
行 86: DataSet ds=new DataSet();
行 87: sda.Fill(ds);
行 88: return ds;
行 89: }
源文件: c:\inetpub\wwwroot\exercise\webform1.aspx.cs 行: 87
回复
是从web.config中读取的,在web.config配置就可以了,如下
<appSettings>
<add key="ConnectionString" value="data source=Meng;initial catalog=Document;user id=sa;password=sa;packet size=4096 ;"></add>
</appSettings>
需要修改成你自己的数据库连接 回复
可是现在“编辑”按钮不能正常操作,
一直显示
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 140: ddlcity.DataValueField="cityID";
行 141: ddlcity.DataBind();
行 142: ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
行 143: }
行 144: }
回复
这个中的cityID要和你数据库字段相对应,我这里只是测试数据库,你要修改成实际的数据库字段 回复
如果我不需要联动下拉菜单,只需要一个下拉菜单显示数据库的内容还需要用这个汉书吗? 回复
http://singlepine.cnblogs.com/articles/281425.html
帮上去就可以 回复
当光标在行中移动时,在某一行上单击时(不是选中单选钮或CheckBox),如何使DropDownList1、DropDownList2和DropDownList3获得选择行相应的值呀?
或者:
在某一行上单击时,如何激活一后台事件(不是脚本) 回复
我的asp源码如下:
<asp:dropdownlist id="DropDownListclass1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ljclass2"></asp:dropdownlist><asp:dropdownlist id="Dropdownlistclass2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ljclass3">
<asp:ListItem Value="" Selected="True">请选择二级栏目</asp:ListItem>
</asp:dropdownlist><asp:dropdownlist id="Dropdownlistclass3" runat="server">
<asp:ListItem Value="" Selected="True">请选择三级栏目</asp:ListItem>
</asp:dropdownlist>
asp.cs源码:
#region ljclass2
public void ljclass2(object sender, EventArgs e)
{
DropDownList ddlclass1 = sender as DropDownList;
if(ddlclass1.SelectedIndex!=-1)
{
DropDownList ddl=((Control)(((Control)sender)).Parent).FindControl("Dropdownlistclass2") as DropDownList;
string sqlcity="select * from jq_class2 where class1_name='"+ddlclass1.SelectedValue+"'";
DataSet dsclass2=GetDataSet(sqlcity);
ddl.DataSource=dsclass2;
ddl.DataTextField="class2_name";
ddl.DataValueField="class2_name";
ddl.DataBind();
ddl.Items.Insert(0,"请选择二级栏目");
ddl.Items.FindByText("请选择二级栏目").Selected=true;
}
}
#endregion
#region ljclass3
public void ljclass3(object sender, EventArgs e)
{
DropDownList ddlclass2 = sender as DropDownList;
if(ddlclass2.SelectedIndex!=-1)
{
DropDownList ddl3=((Control)(((Control)sender)).Parent).FindControl("Dropdownlistclass3") as DropDownList;
string sqlcity3="select * from jq_class3 where class1_name='"+DropDownListclass1.SelectedValue+"' and class2_name='"+ddlclass2.SelectedValue+"'";
DataSet dsclass3=GetDataSet(sqlcity3);
ddl3.DataSource=dsclass3;
ddl3.DataTextField="class3_name";
ddl3.DataValueField="class3_name";
ddl3.DataBind();
}
}
#endregion 回复
行 161: ddlarea.DataBind();
行 162: ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
行 163: }
行 164: } 回复
if(chkother[i].checked=true)
这句应该为==true 回复
{
alert('You need to select a row in the list before selecting Delete.\r\nPlease select a row and try again.');
}
else if (window.confirm("Are you sure to delete all these?"))
{
var deleteID='<%=btndelete.ClientID%>';
window.document.all(deleteID).click();
}
弹出提示框“Are you sure to delete all these?”,我按取消,但还会执行提交程序,这是怎么回事呀? 回复