//
目前功能:编辑、排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分、排序、分页
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代码
< 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 >
using
System.Data.SqlClient;
using System.Text;
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();
}
}
#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();
}
#endregion
#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
#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
#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
#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
#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
#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
#region Edit
protected void Edit(object sender,DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataBind();
}
#endregion
#region Cancel
protected void Cancel(object sender,DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
DataBind();
}
#endregion
#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
#region Delete event
protected void Delete(object sender,DataGridCommandEventArgs e)
{
delete(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}
#endregion
#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
#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
#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
#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
#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
#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
#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
#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");
}
#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();
}
}
{
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();
}
}
#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();
}
#endregion
#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
#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
#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
#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
#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
#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
#region Edit
protected void Edit(object sender,DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataBind();
}
#endregion
#region Cancel
protected void Cancel(object sender,DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
DataBind();
}
#endregion
#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
#region Delete event
protected void Delete(object sender,DataGridCommandEventArgs e)
{
delete(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}
#endregion
#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
#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
#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
#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
#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
#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
#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
#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");
}
#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
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