这是我写的数据绑定方法private void SetGridSource () { SqlConnection MyConnection = new SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication");
MyConnection.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT department.departmentid, person.p_name,department.departmentname,person.cp_phone,person.cp_cellular FROM person join department on department.departmentid = person.departmentid order by p_id asc" , MyConnection);
DataSet ds = new DataSet(); da.Fill(ds,"person");
DataGrid1.DataSource = ds; DataGrid1.DataBind(); MyConnection.Close();}//PageLoad事件是这样的:private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) {//获取数据总的行数 SqlConnection MyConnection = new SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication"); SqlCommand MyCommand = new SqlCommand("SELECT mycount = COUNT(*) FROM person",MyConnection); MyConnection.Open(); SqlDataReader dr = MyCommand.ExecuteReader(CommandBehavior.SingleRow); if (dr.Read()) { DataGrid1.VirtualItemCount = (int)dr["mycount"];
即:
datagrid.Allowpaging=true;
//写个数据帮定方法
void BindingData()
{
string str=@"server=yourservername;user id=sa;"+
@"password=pwd;database=master;";
string sql="Select name,id,xtype,typestat from syscolumns";
SqlConnection conn=new SqlConnection(str);
conn.Open();
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"syscolumns");
this.DataGrid1.DataSource=ds.Tables["syscolumns"].DefaultView;
this.DataGrid1.DataBind();
conn.Close();
}
//然后在你某个按扭事件中触发
void btn_Click(object obj,EventArgs ea){
BindingData();
}
//设置翻页事件
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
BindingData();
}
wish u good luck
Greatsft
比如执行下面的代码。
this.DataGrid1.DataSource=ds.Tables["tablename"].DefaultView;
this.DataGrid1.DataBind();
{
SqlConnection MyConnection = new SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication");
MyConnection.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT department.departmentid, person.p_name,department.departmentname,person.cp_phone,person.cp_cellular FROM person join department on department.departmentid = person.departmentid order by p_id asc" , MyConnection);
DataSet ds = new DataSet();
da.Fill(ds,"person");
DataGrid1.DataSource = ds;
DataGrid1.DataBind(); MyConnection.Close();}//PageLoad事件是这样的:private void Page_Load(object sender, System.EventArgs e)
{ if (!IsPostBack) {//获取数据总的行数
SqlConnection MyConnection = new SqlConnection("server=TANGJ;uid=sa;pwd=sa;database=p_communication"); SqlCommand MyCommand = new SqlCommand("SELECT mycount = COUNT(*) FROM person",MyConnection); MyConnection.Open(); SqlDataReader dr = MyCommand.ExecuteReader(CommandBehavior.SingleRow); if (dr.Read())
{
DataGrid1.VirtualItemCount = (int)dr["mycount"];
}
dr.Close(); MyConnection.Close(); SetGridSource();
}//设置翻页事件private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
SetGridSource();
}
//button触发SetGridSource()但是在翻页时DataGrid就会消失!我也不知道怎么回事!!!!不知道是不是在查询两个表时出的错呢??