datalist和datagrid都可以完成同样的功能,为什么还要用repeater
解决方案 »
- 能否把asp.net里编译的dll转换成VB6.0可用的DLL?
- 这段代码有没有错?
- 不知怎么用treeview,急..................
- 我的按纽事件怎么执行了两遍?怎么解决呀?
- 关于制作安装包和字体的问题,100分
- 页面权限问题
- 关于dropdownlist的selectitem.text返回值!我想返回我选的内容,可是总是返回第一项!怎么回事儿?
- 如何实现 添加界面和datagrid界面在一起以实现同步刷新
- 推荐几个比较权威的网站内容管理的系统,比于sohu用的?(100)
- SSH2开发,老是报空指针,什么鬼,求大神给看看,前台数据封装正常,也能获取到,就是报空指针!!
- 为何连不上SQL SERVER?:(
- 在一个datagrid里使用了一个摸板列(CheckBox),并有些绑定列,实现了分页功能有问题,请教高手!(sammend,icyer请帮忙啊。。。)
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Work.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="WebForm2" method="post" runat="server">
<table>
<TBODY>
<tr>
<td colspan="2">
<asp:Repeater ID="repeater1" Runat="server">
<HeaderTemplate>
<table border="1">
<tr>
<td>用户名</td>
<td>密码</td>
<td>性别</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"name") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"password") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"sex") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate> </asp:Repeater></TD></TR>
<tr>
<td>
<asp:LinkButton id="lbtnPrevPage" CommandName="prev" OnCommand="Page_OnClick" runat="server">上一页</asp:LinkButton>
</td>
<td>
<asp:LinkButton id="lbtnNextPage" CommandName="next" OnCommand="Page_OnClick" runat="server">下一页</asp:LinkButton>
</td>
</tr>
</TBODY></TABLE>
</form>
</body>
</HTML>//WormForm1.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace Work
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
private int pageCount;//页面总数
private int pageSize;//每页记录数
private int recordCount;//记录个数
private int currentPage;//当前页数 private SqlConnection myConnection;
private SqlDataAdapter mySqlDataAdapter;
private DataSet myDataSet; protected System.Web.UI.WebControls.LinkButton lbtnPrevPage;
protected System.Web.UI.WebControls.Repeater repeater1;
protected System.Web.UI.WebControls.LinkButton lbtnNextPage;
private void Page_Load(object sender, System.EventArgs e)
{
pageSize=5;
recordCount = ViewState["RecordCount"]==null ? 0 : (int)ViewState["RecordCount"];
currentPage = ViewState["CurrentPage"]==null ? 0 :(int)ViewState["CurrentPage"];
pageCount = ViewState["PageCount"] ==null ? 0 :(int)ViewState["PageCount"];
// 在此处放置用户代码以初始化页面
myConnection = new SqlConnection("server=(local)\\NetSDK;Trusted_Connection=yes;database=Test");//Test位自己创建的包含一个member表的SQL数据库
mySqlDataAdapter = new SqlDataAdapter("select * from member", myConnection);//member为Test数据库中包含name,password,sex字段的一个表
myDataSet = new DataSet(); if(!IsPostBack)
{
mySqlDataAdapter.Fill(myDataSet,"member");
recordCount = myDataSet.Tables["member"].Rows.Count;
myDataSet.Tables["member"].Rows.Clear();
ViewState["CurrentPage"] = 0;
pageCount = recordCount/pageSize;
if(pageCount * pageSize <recordCount)pageCount += 1;
ViewState["PageCount"] = pageCount;
ViewState["RecordCount"] = recordCount;
}
int startIndex = currentPage * pageSize;
mySqlDataAdapter.Fill(myDataSet,startIndex,pageSize,"member"); this.repeater1.DataSource = myDataSet.Tables["member"].DefaultView;
// ((DataView)(this.repeater1.DataSource)).
this.repeater1.DataBind(); lbtnNextPage.Enabled = true;
lbtnPrevPage.Enabled = true;
if(currentPage==(pageCount-1)) lbtnNextPage.Enabled = false;
if(currentPage==0) lbtnPrevPage.Enabled = false;
} public void Page_OnClick(Object sender,CommandEventArgs e)
{
//判断cmd,以判定翻页方向
switch(e.CommandName)
{
case "next":
if(currentPage<(pageCount-1)) currentPage++;
break;
case "prev":
if(currentPage>0) currentPage--;
break;
default:
// if(e.CommandName != "")
// currentPage = int.Parse(e.CommandName);
break;
} ViewState["CurrentPage"] = currentPage; Page_Load(null,null);
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion }
}