GridView动态绑定怎么分页?
大佬们好,本人小白想请教一些问题。我的GridView是动态绑定的,有四个DropDownList,每个里面都有两三个选项。也就是说有很多很多个if,选择不同GridVi...
大佬们好,本人小白想请教一些问题。
我的GridView是动态绑定的,有四个DropDownList,每个里面都有两三个选项。也就是说有很多很多个if,选择不同GridView里面的数据也不同。想请问这种情况怎么做PageIndexChanging的事件呢?上面那些选项查询语句都不同,绑定了一个方法叫BaseClass.B indDG。请问这种情况分页会很复杂吗,还是说不做分页,让界面根据GridView的长度自动延长好做吗? 展开
我的GridView是动态绑定的,有四个DropDownList,每个里面都有两三个选项。也就是说有很多很多个if,选择不同GridView里面的数据也不同。想请问这种情况怎么做PageIndexChanging的事件呢?上面那些选项查询语句都不同,绑定了一个方法叫BaseClass.B indDG。请问这种情况分页会很复杂吗,还是说不做分页,让界面根据GridView的长度自动延长好做吗? 展开
1个回答
展开全部
后台代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
fillGridView();
}
}
//填充GridView
protected void fillGridView()
{
DataSet ds = new DataSet();
ds = GetData();
GridView1.DataSource = ds;
GridView1.DataBind();
getRefSet(ds);
}
//分页
protected void getRefSet(DataSet ds)
{
lblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页";
lblPageCount.Text = "共 " + GridView1.PageCount.ToString() + " 页";
lblRecordCount.Text = "总共 " + ds.Tables[0].Rows.Count.ToString() + " 条";
if (ds.Tables[0].Rows.Count == 0)
{
lnkbtnFirst.Visible = false;
lnkbtnPre.Visible = false;
lnkbtnNext.Visible = false;
lnkbtnLast.Visible = false;
lblCurrentIndex.Visible = false;
lblPageCount.Visible = false;
lblRecordCount.Visible = false;
}
else if (GridView1.PageCount == 1)
{
lnkbtnFirst.Visible = false;
lnkbtnPre.Visible = false;
lnkbtnNext.Visible = false;
lnkbtnLast.Visible = false;
}
lnkbtnFirst.CommandArgument = "1";
lnkbtnPre.CommandArgument = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());
lnkbtnNext.CommandArgument = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString());
lnkbtnLast.CommandArgument = GridView1.PageCount.ToString();
}
//第几页
protected void lnkbtnJumpPage_Click(object sender, EventArgs e)
{
GridView1.PageIndex = int.Parse(txtJumpPage.Text) - 1;
lblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页";
fillGridView();
GridView1.DataBind();
}
protected void PagerButtonClick(object sender, EventArgs e)
{
GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandArgument) - 1;
fillGridView();
GridView1.DataBind();
}
// 转换SQL查询结果为DataSet
private DataSet GetData()
{
OracleConnection conn = new OracleConnection("Data Source=wgyx;user=wgyx;password=wgyx;");
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
String strSql = "select id,fuid,the from sys_organ";
cmd.CommandText = strSql;
cmd.CommandType = CommandType.Text;
DataSet ds = new DataSet();
try
{
conn.Open();
OracleDataAdapter ad = new OracleDataAdapter();
ad.SelectCommand = cmd;
ad.Fill(ds);
}
catch (Exception ex)
{
Response.Write("数据库错误,错误原因:" + ex.Message);
Response.End();
}
finally
{
conn.Close();
}
return ds;
}
}
前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>分页测试程序</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellPadding="4" GridLines="None"
ForeColor="#333333" >
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#DCDCDC" />
<PagerSettings Visible="False" />
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<%# Eval("id")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="地名">
<ItemTemplate>
<%# Eval("the")%>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField HeaderText="地图" Text="标注" />
</Columns>
</asp:GridView>
<asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="PagerButtonClick">首页</asp:LinkButton><asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="PagerButtonClick">上一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="PagerButtonClick">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="PagerButtonClick">尾页</asp:LinkButton>
<p><asp:Label ID="lblCurrentIndex" runat="server" Text="第1页"></asp:Label>
<asp:Label ID="lblPageCount" runat="server" Text="共1页"></asp:Label>
<asp:Label ID="lblRecordCount" runat="server" Text="记录数"></asp:Label>
<asp:TextBox ID="txtJumpPage" runat="server" Width="24px">1</asp:TextBox>
<asp:LinkButton ID="lnkbtnJumpPage" runat="server" OnClick="lnkbtnJumpPage_Click" >跳转</asp:LinkButton>
</p>
</div>
</form>
</body>
</html>
效果图
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询