C# 用于分页ASP.Net的中继器内的链接按钮

C# 用于分页ASP.Net的中继器内的链接按钮,c#,asp.net,repeater,paging,linkbutton,C#,Asp.net,Repeater,Paging,Linkbutton,我正在做一个网页的搜索,带来了大量的信息从MSSQL。我所做的是一个存储过程,它只返回要在网站上看到的页面 现在我正在进行分页,因为我需要显示一些类似于google的东西。如果您在第1页,则显示前10页;如果您在第19页,则显示从第9页到第28页 我认为显示页码的最佳选择是在中继器中使用链接按钮。我现在的问题是,我不知道在回邮时获取页码的最佳方法 在执行快速示例时,我为repeater.datasource分配了一个ArrayList: <asp:Repeater ID="Repeat

我正在做一个网页的搜索,带来了大量的信息从MSSQL。我所做的是一个存储过程,它只返回要在网站上看到的页面

现在我正在进行分页,因为我需要显示一些类似于google的东西。如果您在第1页,则显示前10页;如果您在第19页,则显示从第9页到第28页

我认为显示页码的最佳选择是在中继器中使用链接按钮。我现在的问题是,我不知道在回邮时获取页码的最佳方法

在执行快速示例时,我为repeater.datasource分配了一个ArrayList:

  <asp:Repeater ID="Repeater2" runat="server">
    <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="<%# Container.DataItem %>"><%# Container.DataItem %></asp:LinkButton>
    </ItemTemplate>
  </asp:Repeater>
  <asp:LinkButton ID="LinkButton2" runat="server" CommandArgument="4654">Test #1</asp:LinkButton>
我该怎么做才能使它工作

有人有更好的解决方案吗

多谢各位


Jerry

只是一个想法,您是否尝试过使用“DataGrid”对象,添加列,使其成为项目模板,然后在模板中放入需要重复的元素。当设置为true时,DataGrid还会自动处理分页…

您从未声明过它是哪种类型的分页控件。如果您使用的是ASP.Net 3.5,那么我强烈建议您使用ListView控件并使用DataPager控件处理分页。

您正在查找ItemCommand事件:

  <asp:Repeater ID="Repeater1" OnItemCommand="ItemCommand" runat="server">
    <ItemTemplate>
      <asp:LinkButton CommandName="ButtonEvent" CommandArgument="<%# Container.DataItem %>" Text="<%#Container.DataItem %>" runat="server"></asp:LinkButton>
    </ItemTemplate>
  </asp:Repeater>

。。。但是你真的确定你需要链接按钮吗?一个普通的HTML锚定标记也可以很好地工作,而且它不那么模糊

我使用了@JakobGade,这就是我的工作原理:

<asp:Repeater ID="rpMemList" runat="server" ClientIDMode="Static" 
onitemcommand="rpMemList_ItemCommand">
     <ItemTemplate>

          <asp:LinkButton ID="lbMember" CommandArgument='<%# Eval("memID")%>' CommandName="SelMem" runat="server" ClientIDMode="Predictable"><%# Eval("memFullName")%></asp:LinkButton>

     </ItemTemplate>
</asp:Repeater>

我所看到的是,Datapager需要一个分配给自动分页的控件,为此,我需要从DB中取出所有寄存器,并使其更快,我想返回将显示的内容,使用自动分页的问题是,我需要从数据库中取出所有寄存器,为了更快地返回将显示的内容;)不客气,很乐意帮忙。不要忘记为您的问题选择一个可接受的答案。:)谢谢你,雅各布。答案值得接受。
protected void Page_Load(object sender, EventArgs e)
{
  if (!Page.IsPostBack)
  {
    Repeater1.DataSource = Enumerable.Range(1, 10);
    Repeater1.DataBind();
  }
}

protected void ItemCommand(Object Sender, RepeaterCommandEventArgs e)
{
  Response.Write("The no. " + ((LinkButton)e.CommandSource).Text + " button was clicked!");
}
<asp:Repeater ID="rpMemList" runat="server" ClientIDMode="Static" 
onitemcommand="rpMemList_ItemCommand">
     <ItemTemplate>

          <asp:LinkButton ID="lbMember" CommandArgument='<%# Eval("memID")%>' CommandName="SelMem" runat="server" ClientIDMode="Predictable"><%# Eval("memFullName")%></asp:LinkButton>

     </ItemTemplate>
</asp:Repeater>
    protected void rpMemList_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        string a = e.CommandArgument.ToString();
        string b = e.CommandName.ToString();
        string c = e.CommandSource.ToString();
        string d = e.Item.ToString();

    }