Asp.Net从零开始学-19

                   这里一起来了解一下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>");
  }

模版列可以自由定义

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值