C# - Custom Paging Repeater Control Next And Previous Events Happen After Databind
Feb 3, 2010
I have a Custom Repeater control that inherits from Repeater and has paging functionality, however when I click the next page button the first time it refreshes the control but does not change the page, if I click it again after that it changes page perfectly. I know what the issue is, when I click the next button it does a postback, then the data is bound to the repeater, and then after that the NextButton Event is handled.
Is there any way I can change the order of the page load events?? Or force the repeater to reload again after the event is handled?? I've included my Custom Repeater class bellow:
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Data;
using System.Collections;
using System;
namespace ASPresentation.Controls
{
[ToolboxData("<cc:PagedRepeater runat=server></cc:PagedRepeater>")]
public class PagedRepeater : Repeater
{
public int PageSize { get; set; }
public int CurrentPageIndex
{
get
{
return Convert.ToInt16(Page.Session["ProjectIndex"]);
}
set
{
Page.Session.Add("ProjectIndex", value);
}
}
public PagedDataSource pagedData = new PagedDataSource();
LinkButton NextBtn = new LinkButton();
LinkButton PrevBtn = new LinkButton();
public bool IsLastPage
{
get
{
return pagedData.IsLastPage;
}
}
public bool IsFirstPage
{
get
{
return pagedData.IsFirstPage;
}
}
public override object DataSource
{
get
{
return base.DataSource;
}
set
{
pagedData.DataSource = (IEnumerable)value;
}
}
protected void NextButtonClick(object sender, EventArgs e)
{
if (!IsLastPage)
{
CurrentPageIndex++;
}
}
protected void PrevButtonClick(object sender, EventArgs e)
{
if (!IsFirstPage)
{
CurrentPageIndex--;
}
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
NextBtn.Text = "Next";
PrevBtn.Text = "Prev";
NextBtn.Click += new EventHandler(NextButtonClick);
PrevBtn.Click += new EventHandler(PrevButtonClick);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
base.Controls.Add(PrevBtn);
base.Controls.Add(NextBtn);
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}
public override void DataBind()
{
pagedData.AllowPaging = true;
pagedData.PageSize = PageSize;
pagedData.CurrentPageIndex = CurrentPageIndex;
base.DataSource = pagedData;
base.DataBind();
}
}
}
View 2 Replies
Similar Messages:
Feb 9, 2011
I'd like to implement a custom paging template for my formview that displays numeric paging as well as next/previous buttons. The pre-defined templates only appear to have numeric first last as an option. Can anyone recommend a good article that covers this?
View 2 Replies
Aug 31, 2013
URL... I'm trying this approach and I like it, It is what i was finding. customize the function he wrote to populate the pager control:
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / Convert.ToDecimal(PageSize));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
[code]...
I need the paginator is something like that:<FIRST><BACK>1,2,3....N<NEXT><LAST>where first return back to first page, back go to previous current page, next for next page and last jump to last page.How can I do that?
View 1 Replies
Feb 25, 2016
Design page :
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%#Eval("ProductName")%>
</ItemTemplate>
</asp:Repeater><br />
<asp:LinkButton ID="lbPrevious" runat="server" Enabled="false">Previous page</asp:LinkButton>
<asp:LinkButton ID="lbNext" runat="server">Next page</asp:LinkButton>
Code behind file
using System;
// We need these namespaces imported to work easier with database
using System.Data;
using System.Data.SqlClient;
// Here is PagedDataSource class located
using System.Web.UI.WebControls;
[Code] .....
Record loaded into control but when i press next button then next 10 record showing properly but when i want to see another next record then it shows same record.
e.g. i have 40 records in my db then first time it shows 1 to 10 record
when i press next button then it shows 11 - 20 records
again i press next button then it shows 11-20 records instead of 21-30 records...
View 1 Replies
Jul 1, 2010
I have a custom control which contains a Repeater control. The Repeater has an ItemTemplate. Inside that item template I have a panel which is going to hide something based on "IsEditable" a boolean property of the custom control. What I would like to do is set the panel's visibility once before the Repeater is databound.
I know I could do an onItemDataBound event and use FindControl to get the panel but that seems a little excessive since it will always be either visible or not for all rows and I have no other actions that need to occur on databind. Is there a way to find the control in the ItemTemplate before the Repeater is databound?
View 1 Replies
Dec 24, 2010
here's a situation and I would appreciate your response.
I have programmatically created the Wizard control:
Page_Load(obj s, evargs e)
{
Wizard ClaimDetailWizard = new Wizard();
foreach(int item in selectedItems)
{
//create new step
//added custom control to new step
//add step to wizard
}
//added wizard to a placeholder on a page
}
Based on List I get from Session i added new steps to my wizard To each step I had added a custom control
Each custom control in tern contains another custom Gridview Control in it.
So here's the problem when the page loads for example for two steps. All is good Wizard does what it's supposed to do.
But when I try to use sorting or paging in that custom Gridview. Somehow it displays the gridview I should see in the next step of the wizard.
Also what I'm noticing through debugging. Is that when I press next in the wizard I go back to the original page where I do all of the code specified above, and it recreates the wizzard. But it goes to the next step. Is this the way wizard supposed to work? Just doesn't seem very efficient.
View 1 Replies
Mar 31, 2010
Can I place a asp:datalist inside a repeater control and databind it for each time its repeated? Using VB.NET btw..
View 1 Replies
Sep 20, 2015
I want to export all repeater data in excel file i used following code but it take only first page data means page size 10 it export only 10 record i want to export whole repeater data
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=Detail.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
[Code] ....
View 1 Replies
Jun 8, 2010
I've written a custom control that converts datasources into an IEnumerable and then binds the data. This works fine and I have LoadPostData working after postbacks. I can also using a collection to load it. Like adding listitems to a dropdownlist on an html page. This works fine and I have LoadPostData working after postbacks
[Category("Behavior"),
Description("A collection of CheckBoxItems"),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
NotifyParentProperty(true),
PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public CheckBoxFieldCollection CheckBoxItems
{....}
Kinda struggling on merging the two. I think when i databind, instead of adding my CheckBoxItem to Controls I think I need to add it to my collection CheckBoxItems and then proced with creating childcontrols. It works the first pass through when I bind to the datasource. When I do a postback my controls collection goes to null. Can anyone point me in which direction to go? Also, after databinding, if I do , MyControl.CheckBoxItems.Add(new CheckBoxItem(..)), the new one doesnt show up.
View 1 Replies
Sep 22, 2010
I have a simple custom control that boils down to a label and a listbox. Selections in the listbox are reflected in the label as comma separated values. My question is what is the best and simplest way to make the page developers experience of working with the custom control exactly mimic the experience of working with just the listbox - when it comes to working with data. For some reason it feels wrong to simply create mirrored properties in the custom control and forward their values to the internal listbox. A small, perhaps unrelated complication is that the final product has to play nice with the forms collection due to the nature of the host application.
View 1 Replies
Nov 29, 2010
I have a custom user control UserProfileLink on which I have two basic string properties, UID and UserFullName which I would like to use in a template column in a DataGrid like this:
....
<ItemTemplate>
<td:UserProfileLink ID="uplUser" runat="server" UID="<%#Eval("UserUID") %>" UserFullName="<%#Eval("UserFullName") %>" />
</ItemTemplate>
....
I get an error saying "The server tag is not well formed" which leads me to believe this type of binding isn't possible. Is there a way to do this, or is it impossible?
View 1 Replies
Jan 27, 2010
I have a search page. If a user enter something into title textbox and search let say it display 15 records.
If click the title of each records, it goes to DetailsPage.aspx.
What I want here is: If user click the title details of a record and leave that search page, I want to put there(On Details.aspx) Previous/Next button arrow so that the user does not need to browse back and see the search results and go to next details.
Note: I am passing ID into querystring when go search page to details page.
How to keep remembering IDs on details page of searched records on search.aspx ?? Use session or something different ? How can I do this ?
View 5 Replies
Sep 16, 2010
I reference a user control in my ListView in this manner:
[Code]....
The problem is that the #Bind command doesn't update the database, but it does so when I paste the code directly into the aspx page (in other words, without the user control involved).
View 4 Replies
Jun 17, 2010
I made a composite control that contains a ListBox. I am using the Composite Control throughout my application but I can not bind the listbox in the Compositecontrol. I have setup a Public get to access my listbox in the composite control.
View 3 Replies
Jun 16, 2013
i don't from where to start ...
View 1 Replies
Aug 9, 2010
I need to list URL records from DB and bind data to repeater, therefore I put hyperlink inside repeater control.
I want to fire 2 events when a Visitor click on hyperlink
1- It Update DB Record that this link clicked one time
2-Open URL in new windows
View 7 Replies
Jul 1, 2010
I am trying to experiment with things as a beginner and want to use paging in Repeater Control. Since Repeater control is light weight, I want to use that. I have heard of two methods: PagedDataSource class and the other that I dont remember. I wanted to attempt both of them. How do I proceed?
View 2 Replies
Aug 2, 2010
I've got a repeater control containing comments. I'm about to implement ajax paging to it. I was opting to use the updatepanel (conditionally) for this thing, but I guess it's going to get kinda slow in production environment (Each time about 20 rows will be visible). I want to keep the repeater control since it contains other controls as well so I can't use a js (templates)/json approach.
View 1 Replies
Oct 27, 2013
How to create asp repeater with paging like this format
1 2 3 4 5 ...NEXT >>
I got a solution [Code] ..... but if this method is not effective if our table content >500
i.e. 1 2 3 4 5 6 7 8 9 10
View 1 Replies
Jan 28, 2011
I want to do pagination in repeater control.
I am using repeater.Datasource = objectDataSource.
and objectdatasource is having generic list data.
When i try to cast objectdatasource to dataview ...i am getting exception saying "casting
Collections Generic List cannot be casted to Dataview".
Can anyone tell me easy way to do Repeater Pagination in the above mentioned case
View 4 Replies
May 3, 2010
I have a strange problem. I have made a PagedRepeater control, which inherits from the Repeater, from a tutorial I saw here: http://www.4guysfromrolla.com/articles/020905-1.aspx. It's in VB and I'm in C#, and it didn't quite have all the features I was lookingfor, so, I've modified it quite a bit. I added support for a SqlDataSource control, as well. The only problem is, that it always returns the first item from the SqlDataSource, even when the CurrentPageIndex on the PagedDataSource is set to a different value.
View 1 Replies
Mar 4, 2011
I develop a custom data pager control. Its "previous" and "next" hyperlinks buttons don't work properly and I don't understand why.
[code]...
I need to develop my own paging light control. Don't suggest me to use other paging controls.
View 1 Replies
Jun 16, 2010
I use this code to search youtube
XmlDataSource1.DataFile = "http://gdata.youtube.com/feeds/videos?q=" + word +
"&max-results=50&format=5&aq=f&alt=rss";
xmlN = new XmlNamespaceManager(XmlDataSource1.GetXmlDocument().NameTable);
xmlN.AddNamespace("media", "http://search.yahoo.com/mrss/");
XmlNodeList xmlNodes = XmlDataSource1.GetXmlDocument().SelectNodes("rss/channel/item/media:group", xmlN);
[code]...
View 4 Replies
Aug 1, 2010
I have custom server control contains templatefield when an out button clicked the field disappear , when can I rebind the control (inside its class) supposed that Control.Page.OnInit+=new EventHandler(rebind()) doesn't do any things ?
View 4 Replies
Jan 18, 2010
I have a user control that displays a shopping cart in an ecommerce application.
The main cart display is a repeater that renders as a html table. In one of those table columns, there is another repeater to display people associated with the products int he cart (it's a repeater in case there is a line item >1 with multiple people).
I've added an ImageButton that I want to use to change the person associated with the item. At first, when I'd click on it I was getting this error:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
So as an experiment I disabled EventValidation on the page (not the control it's self) and now I do not get an error, but I also do not ever hit the breakpoint I set in the innermost repeater's ItemCommand event.
So I wonder how I might do this without disabling EventValidation, because this control will show up on multiple pages and we don't want to edit them all. Also, I'll need to know not only the repeater containing the control's row that the event came from but also the row index of the repeater containg this one. Is this possible?
View 3 Replies