GridView绑定EXECL,怎么分布

duanxifeng888 2010-08-18 12:22:50

string filename = "", filesize, filetype;
get.filenames = filename;

//string tablename = "导入发货信息格式";
HttpFileCollection hfc = Request.Files;

HttpPostedFile hpf = hfc[0];
filename = Path.GetFileName(hpf.FileName);
filesize = hpf.ContentLength.ToString();
filetype = hpf.ContentType;
//Response.Write(filetype);
if (filename.IndexOf(".xls") > -1)
{
hpf.SaveAs(Server.MapPath("uplode/") + filename);
//Response.Write(filename + "<BR>" + filesize + "<BR>" + filetype);
//RegisterStartupScript("dd", "<script>alert('上传成功!!')</script>");

//读取上传的数据表格在页面上显示出来
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("uplode" + "\\" + filename) + "; Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(strCon);
con.Open();
//获好表格默认第一个表名
DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string tableNamess = dt.Rows[0][2].ToString().Trim();

OleDbDataAdapter sdr = new OleDbDataAdapter("select * from [" + tableNamess + "]", con);
DataSet ds = new DataSet();
sdr.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
con.Close();
ds.Dispose();
sdr.Dispose();

此代码是我上传一个EXECL文件,并用GridView显示出来,但数据太多,我想对GridView分页,但是用传统的方法不能实现分页,请教各位大哥,帮小弟一把
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanxifeng888 2010-08-22
  • 打赏
  • 举报
回复

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
string xlsConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Book1.xls") + ";Extended Properties='Excel 8.0;HDR=No;'";
OleDbConnection cn = new OleDbConnection(xlsConnStr);
cn.Open();
String sql = "select Count(*) From [Sheet1$]";
OleDbCommand cmd = new OleDbCommand(sql, cn);

// 总的记录数
int TotalCount = Convert.ToInt32(cmd.ExecuteScalar());

//当前页的序号
int PageIndex = 1;
String page = Request.QueryString["Page"];
if (page == null) page = "1";
Int32.TryParse(page, out PageIndex);
if (PageIndex < 1) PageIndex = 1;

//每页显示的数量
int PageItem = 5;
int startRecord = (PageIndex - 1) * PageItem;

sql = "Select * From [Sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
DataSet ds = new DataSet();
da.Fill(ds, startRecord, PageItem, "Sheet");

GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();

BuildPagers(TotalCount, PageIndex, PageItem);
}

private void BuildPagers(int TotalCountRecord, int CurrentPage, int PageItem)
{
int Step = 6;
int LeftNum = 0;
int RightNum = 0;
String PageUrl = "?";
int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageItem);
if (CurrentPage - Step < 1)
{
LeftNum = 1;
}
else
{
LeftNum = CurrentPage - Step;
}

if (CurrentPage + Step > PageCount)
{
RightNum = PageCount;
}
else
{
RightNum = CurrentPage + Step;
}
string OutPut = "";
for (int i = LeftNum; i <= RightNum; i++)
{
if (i == CurrentPage)
{
OutPut += "<span style='color:red'>" + i.ToString() + "</span> ";
}
else
{
OutPut += "<a href=\"" + PageUrl + "Page=" + i.ToString() + "\">" + i.ToString() + "</a> ";
}
}
if (CurrentPage > 1)
{
OutPut = "<a href='" + PageUrl + "Page=1'>首页</a> <a href=\"" + PageUrl + "Page=" + (CurrentPage - 1) + "\">上一页</a> " + OutPut;
}

if (CurrentPage < PageCount)
{
OutPut += " <a href=\"" + PageUrl + "Page=" + (CurrentPage + 1) + "\">下一页</a> <a href='" + PageUrl + "Page=" + PageCount + "'>末页</a>";
}
Pager.InnerHtml = OutPut ;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>孟宪会的Excel分页测试</title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" ShowHeader="false">
</asp:GridView>
<div id="Pager" runat="server"></div>
</form>
</body>
</html>

duanxifeng888 2010-08-20
  • 打赏
  • 举报
回复
能说清楚点吗》
孟子E章 2010-08-20
  • 打赏
  • 举报
回复
完整的分页例子
http://dotnet.aspx.cc/file/Excel-File-Data-Paging-In-ASP.NEt.aspx
netstray 2010-08-18
  • 打赏
  • 举报
回复
关注中………………
孟子E章 2010-08-18
  • 打赏
  • 举报
回复
你可以自定义分页
采用这个方法
myAdapter.Fill(ds, startRecord, PageItem, "Paging");



http://msdn.microsoft.com/zh-cn/library/kxs7kbfe.aspx

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧