这里一起来了解一下DataGrid控件
首先建立一个数据连接类DB.cs
using System;
using System.Data.SqlClient;
namespace DataGridTest
{
public class DBCon
{
public static SqlConnection createCon(){
return new SqlConnection("server=.;database=Northwind;uid=sa;pwd=12345678");
}
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!this.IsPostBack){
this.BindToDataGird();
}
}
private void BindToDataGird(){
//简单绑定DataGird控件
SqlConnection con=DBCon.createCon();
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand=new SqlCommand("select * from Employees",con);
DataSet ds=new DataSet();
sda.Fill(ds,"emp");
this.DataGrid1.DataKeyField="EmployeeID";//绑定主键
this.DataGrid1.DataSource=ds.Tables["emp"];
this.DataGrid1.DataBind();
}
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{//表单变换颜色
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
e.Item.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#6699ff'");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=c");
}
((LinkButton)(e.Item.Cells[5].Controls[0])).Attributes.Add("onclick","return confirm('确认删除吗?');");
}
//分页
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
this.BindToDataGird();
}
//隐藏(第二)列
private void Button1_Click(object sender, System.EventArgs e)
{
this.DataGrid1.Columns[1].Visible=false;
this.BindToDataGird();
}
//排序
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
if(ViewState["Order"]==null)//是否为第一使用
{
ViewState["Order"]="ASC";
}
else{
if(ViewState["Order"].ToString()=="ASC")
{
ViewState["Order"]="DESC";
}
else{
ViewState["Order"]="ASC";
}
}
SqlConnection con=DBCon.createCon();
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand=new SqlCommand("select * from Employees",con);
DataSet ds=new DataSet();
sda.Fill(ds,"emp");
ds.Tables["emp"].DefaultView.Sort=e.SortExpression+" "+ViewState["Order"].ToString();
this.DataGrid1.DataSource=ds.Tables["emp"].DefaultView;//绑定到视图
this.DataGrid1.DataBind();
}
//删除
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string empID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
SqlConnection con=DBCon.createCon();
SqlCommand cmd=new SqlCommand("delete from Employees where employeeID='"+empID+"'",con);
con.Open();
cmd.ExecuteNonQuery();
this.BindToDataGird();
}
//编辑
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.BindToDataGird();
}
//取消
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=-1;
this.BindToDataGird();
}
//更新
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string empID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string lastName=((TextBox)(e.Item.Cells[2].Controls[0])).Text;
Response.Write(empID+"&"+lastName);
this.BindToDataGird();
}
//选定项
private void Button2_Click(object sender, System.EventArgs e)
{
foreach(System.Web.UI.WebControls.DataGridItem dl in this.DataGrid1.Items){
CheckBox chk=(CheckBox)dl.FindControl("chkSelect");
if(chk.Checked){
Response.Write(dl.Cells[1].Text);//是否被选中
}
}
}
可以通过此来传值 showDatails.aspx
private void Page_Load(object sender, System.EventArgs e)
{
// 接收
string empID=Request.QueryString["empID"].ToString();
Response.Write(empID);
Response.Write("<br>");
}
模版列可以自由定义