问一个关于GridView的问题,希望大家能帮帮忙啊,谢谢
手动配置数据源时GridView不能自动分页,怎么办啊?
后台是这样写的:
if (!IsPostBack)
{
string a = Session[ "textbox "].ToString();
Label1.Text = a;
OleDbConnection conn = new OleDbConnection(@ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath( "db1.mdb "));
string sql = "select * from goods where goodsvariety like '% " + a + "% ' or goodsname like '% " + a + "% ' or goodsoprice like '% " + a + "% ' or goodsnprice like '% " + a + "% ' ";
string sql1 = "select * from goods where goodsvariety like '% " + a + "% ' or goodsname like '% " + a + "% ' ";
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
OleDbDataAdapter da1 = new OleDbDataAdapter(sql1, conn);
DataSet ds = new DataSet();
DataSet ds1 = new DataSet();
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex(@ "[0-9] ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
if (re.Matches(a).Count == a.Length)
{
conn.Open();
da.Fill(ds, "textbox ");
GridView1.DataSourceID = null;
GridView1.DataSource = ds.Tables[ "textbox "].DefaultView;
DataBind();
conn.Close();
}
else
{
conn.Open();
da1.Fill(ds1, "textbox1 ");
GridView1.DataSourceID = null;
GridView1.DataSource = ds1.Tables[ "textbox1 "].DefaultView;
DataBind();
conn.Close();
}
}
分页我想用自动分页,不知道是为什么,按第二页时,总是会跳转到其他的页面,非常奇怪,不知道是为什么,不知道是否有人知道,希望能帮忙,谢谢
[解决办法]
大哥啊,自动分页不是用代码写的饿,是在gridview的属性中有一个AllowPaging把false该成true,然后在下面有个pagesize,改成你想让它一页显示多少行就OK了.
然后在gridview的属性中找pageindexchanging事件,双击进去,在代码里写
this.Gridview1.PageIndex = e.NewPageIndex;
this.Bind();
就可以显示分页了.
[解决办法]
你可以将GridView的DataSource指定为自己的DataTable或DataSet或DataView,GridView是可以自动分页的,要将GridView的AllowPaging设为True.
还要加上Pageindexchanging事件.如qq0413022() 所说.
另外,GridView1.DataSourceID = null;可以去掉.
[解决办法]
半天了还没说明白,
还是给你帖个代码
1。
允许自动分页功能,请设置 AllowPaging= "True "
2。
每页显示记录数,请设置 PageSize
3。
手动配置数据源,请手动在 PageIndexChanging 事件中处理你分页逻辑,并重新绑定数据
<%@ Page Language= "C# " %>
<%@ Import Namespace= "System.Data " %>
<%--http://community.csdn.net/Expert/topic/5591/5591285.xml?temp=.2408716
--%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<script runat= "server ">
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) {
LoadProductData();
}
}
protected void grdPro_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grdPro.PageIndex = e.NewPageIndex;
LoadProductData();
}
void LoadProductData()
{
DataTable dt = CreateProductTable();
grdPro.DataSource = dt;
grdPro.DataBind();
}
#region sample data
static DataTable CreateProductTable()
{
DataTable tbl = new DataTable( "Products ");
tbl.Columns.Add( "ProductID ", typeof(int));
tbl.Columns.Add( "ProductName ", typeof(string));
tbl.Columns.Add( "CategoryID ", typeof(int));
DataRow row = tbl.NewRow();
row[0] = 1;
row[1] = "Chai ";
row[2] = 1;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 2;
row[1] = "Chang ";
row[2] = 1;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 3;
row[1] = "Aniseed Syrup ";
row[2] = 2;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 4;
row[1] = "Chef Anton 's Cajun Seasoning ";
row[2] = 2;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 5;
row[1] = "Chef Anton 's Gumbo Mix ";
row[2] = 2;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 47;
row[1] = "Zaanse koeken ";
row[2] = 3;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 48;
row[1] = "Chocolade ";
row[2] = 3;
tbl.Rows.Add(row);
row = tbl.NewRow();
row[0] = 49;
row[1] = "Maxilaku ";
row[2] = 3;
tbl.Rows.Add(row);
return tbl;
}
#endregion
</script>
<html xmlns= "http://www.w3.org/1999/xhtml " >
<head runat= "server ">
<title> GridViewHowPaging </title>
</head>
<body>
<form id= "form1 " runat= "server ">
<div>
<asp:GridView id= "grdPro " PageSize= "3 " runat= "server " Font-Size= "12px " AllowPaging= "True " OnPageIndexChanging= "grdPro_PageIndexChanging ">
</asp:GridView>
</div>
</form>
</body>
</html>
Good Luck!