添加分页到gridview asp.net
我想要发生的是有一个分页,有一个清晰的数据看看。 这里是我的GridView的HTML代码:添加分页到gridview asp.net
<asp:gridview ID = "grid" runat="server" AllowPaging="true" OnPageIndexChanging="gdview_PageIndexChanging">
和后面的代码:
public static string cs = "Server=PAULO;Database=ShoppingCartDB;Integrated Security=true";
protected void Page_Load(object sender, EventArgs e)
{
if (Session["New"] != null)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection(cs);
con.Open();
string sql = "SELECT * FROM CustomerDetails Where CustomerName = '" + Session["New"] +"'";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
Label2.Text += Session["New"].ToString();
linkLogout.Visible = true;
//linkOrderHistory.Visible = true;
Label2.Visible = true;
linkViewProfile.Visible = true;
grid.DataSource = dt;
grid.DataBind();
}
}
}
private void CustomBindData()
{
SqlConnection con = new SqlConnection(cs);
con.Open();
string sql = "SELECT * FROM CustomerDetails Where CustomerName = '" + Session["New"] + "'";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
}
protected void gdview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
CustomBindData();
grid.PageIndex = e.NewPageIndex;
grid.DataBind();
}
不知我的代码不能正常工作。它有页面,但是当我点击页面2时,没有数据显示。我认为它有什么关于如何从sql中获取数据。对此有何技巧?
我加了
private void CustomBindData()
{
SqlConnection con = new SqlConnection(cs);
con.Open();
string sql = "SELECT * FROM CustomerDetails Where CustomerName = '" + Session["New"] + "'";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
grid.DataSource = dt;
grid.DataBind();
}
protected void gdview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
CustomBindData();
grid.PageIndex = e.NewPageIndex;
grid.DataBind();
}
取而代之的是
protected void gdview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grid.PageIndex = e.NewPageIndex;
grid.DataBind();
}
使用following..In页面加载储存数据源到会话,你的使用为GridView并执行以下操作一样,
Session[gridviewsouce] = dt; //dataTable which you were using in page_load
和页换肤功能..
protected void gdview_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grid.PageIndex = e.NewPageIndex;
DataTabel dt = Session[gridviewsouce] as DataTable;
grid.DataSource = dt;
grid.DataBind();
}
不会存储会话中的大量数据,使用viewstate [],服务器内存可能会非常快地跑出来 –
@ARUN,服务器内存是否有任何限制?只是为了澄清? –
是的,取决于服务器,有些时候从谷歌专用服务器上的2GB到26GB,有分页和其他机制来超过这个限制,但速度会降低,因为硬盘被用来制作虚拟内存。简单地说,有限制 –
将数据绑定部分放入一个函数中,并在两个地方调用它,一个是在load中,另一个是在grid.DataBind()之前的pageIndexChanging。 –
还不够,你需要在自定义函数中设置源码 –
@ARUN我在想什么? –