Linkbutton inside Repeater for paging ASP.Net
You're looking for the ItemCommand event:
<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>
Code behind:
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!");
}
... but are you really sure you need the LinkButton? A plain HTML anchor tag might work just as fine, and it's less fuzz. :)
Gerardo Abdo
Updated on June 04, 2022Comments
-
Gerardo Abdo almost 2 years
I'm doing a webpage with a search that brings a lot of information from MSSQL. What I did is a stored procedure that return only the page to be seen on the website.
Right now I'm working on the paging as I need to show something similar than google. If you are at page 1 they show first 10 pages and if you are at page 19 they show since page 9 to 28.
I think the best option to show the page numbers is using a linkbutton inside a repeater. The problem that I have now is that I do not know the best way to take the page number at postback.
Doing a quick sample I assigned an ArrayList to repeater.datasource:
<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>
At my Default.aspx.cs file I have the next code
protected void Page_Load(object sender, EventArgs e) { if (this.IsPostBack) { string x = LinkButton2.CommandArgument; //string y = LinkButton1.CommandArgument; //I know this line will not work since the Linkbutton1 is inside the Repeater. }
What Shall I do to make it works?
Does anyone has a better solution for this paging?
Thank you
Jerry
-
Gerardo Abdo about 14 yearsWhat I have seen is that Datapager needs a control assigned to automatically paging and for that I need to bring all the registers from the DB and to make it quicker I want to return just what will be shown
-
Gerardo Abdo about 14 yearsWell, the problem with using an automatic pagging is that I need to bring all the registers from the DB and to make it quicker I want to return just what will be shown ;)
-
Sneha about 14 yearsYou're welcome, glad to help. Don't forget to mark select an accepted answer for your questions. :)
-
mistertodd almost 12 yearsThank you for this Jakob. The answer deserves to be accepted.