代码很简单,页面中就一个文本框、一个按钮、一个DataGrid,查询后第一页显示数据正常,但点其它分页按钮时就显示成了全部的数据和全部的页码而不是查询的那些数据!!! .aspx.csDataView getdataview(string sql, string strtable)
{
OleDbDataAdapter myDataAdapter;
DataSet myDataSet;
myconn.Open();
myDataAdapter = new OleDbDataAdapter(sql, myconn);
myconn.Close();
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, strtable);
return myDataSet.Tables[strtable].DefaultView;
}void bindgrid()
{
string sql="SELECT title from table where title like '%" + searchkey + "%'";
DataView zhuanti=getdataview(sql,"zhuanti");
DataGrid1.DataSource=zhuanti;
DataGrid1.DataBind ();
}private void Button1_Click(object sender, System.EventArgs e)
{
searchkey=Page.Request["search"].Trim();
bindgrid();
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
bindgrid();
}
.aspx<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundColumn DataField="title"></asp:BoundColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="search" runat="server"></asp:textbox>
</form>
{
OleDbDataAdapter myDataAdapter;
DataSet myDataSet;
myconn.Open();
myDataAdapter = new OleDbDataAdapter(sql, myconn);
myconn.Close();
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, strtable);
return myDataSet.Tables[strtable].DefaultView;
}void bindgrid()
{
string sql="SELECT title from table where title like '%" + searchkey + "%'";
DataView zhuanti=getdataview(sql,"zhuanti");
DataGrid1.DataSource=zhuanti;
DataGrid1.DataBind ();
}private void Button1_Click(object sender, System.EventArgs e)
{
searchkey=Page.Request["search"].Trim();
bindgrid();
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
bindgrid();
}
.aspx<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundColumn DataField="title"></asp:BoundColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="search" runat="server"></asp:textbox>
</form>
this.bindgrid();
private void likFirst_Click(object sender, System.EventArgs e)
{
dtgUserInfo.CurrentPageIndex = 0;
this.Bind();
} private void likLast_Click(object sender, System.EventArgs e)
{
//如果不是首页
if(dtgUserInfo.CurrentPageIndex>0)
{
dtgUserInfo.CurrentPageIndex--;
this.Bind();
}
} private void likNext_Click(object sender, System.EventArgs e)
{
//如果不是末页
if(dtgUserInfo.CurrentPageIndex<dtgUserInfo.PageCount-1)
{
dtgUserInfo.CurrentPageIndex++;
this.Bind();
}
} private void likEnd_Click(object sender, System.EventArgs e)
{
dtgUserInfo.CurrentPageIndex = dtgUserInfo.PageCount-1;
this.Bind();
}
this.bindgrid();
-----------------
这个我给的代码中已经有了啊
------------------------------------------------
在这啊,点击按钮后开始查询,后再梆定
private void Button1_Click(object sender, System.EventArgs e)
{
searchkey=Page.Request["search"].Trim();
bindgrid();
}
------------
什么意思啊??小弟是菜鸟,,请详细说说啊。。ViewState是什么呢
DataView getdataview(string sql, string strtable)
{
OleDbDataAdapter myDataAdapter;
DataSet myDataSet;
myconn.Open();
myDataAdapter = new OleDbDataAdapter(sql, myconn);
myconn.Close();
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, strtable);
return myDataSet.Tables[strtable].DefaultView;
}void bindgrid()
{
string searchkey=ViewState["searchkey"].ToString();//这里读取查询关键字
string sql="SELECT title from table where title like '%" + searchkey + "%'";
DataView zhuanti=getdataview(sql,"zhuanti");
DataGrid1.DataSource=zhuanti;
DataGrid1.DataBind ();
}private void Button1_Click(object sender, System.EventArgs e)
{
ViewState["searchkey"]=Page.Request["search"].Trim(); //保存查询关键字
bindgrid();
}private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;
bindgrid();
}
.aspx<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:BoundColumn DataField="title"></asp:BoundColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="search" runat="server"></asp:textbox>
</form>