C# - Is It Wrong To Use A Repeater Within A Repeater
Mar 23, 2011
I have a list of parents, that have children. I am trying to output this on my website doing the following. It works, but is it right? What is the best alternative?
I am using a repeater control and i want to use one more repeater control inside the existing repeater control .
Like this:
<asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> </HeaderTemplate> <ItemTemplate> <!-- start child repeater --> Here I want to use one repater control <!-- end child repeater --> </ItemTemplate> </asp:Repeater>
I have nested a repeater control in Gridview. Right now it is showing gridview rows and repeater header for every case(whether data is there or not for that particular grid view row in the repeater control). I want to hide the gridview row and repeater control header when there is no data present for that particular gridview row. That case I handled at code level by filtering the resulted data table.
Now the another problem I am facing: I have allowed the paging on the gridview i.e. pagesize 3. When page loads it works fine, but when I go to page 2 then it generates following error: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
Below is the code to fill the grid, paging and fill repeater on rowdatabound event of grid.
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?
I am using a repeater to build a custom table. However, I can't figure out how to make the table show subtotal if the next rows tour does not match the previous rows.
Something similar to that.
row1 tour1 row2 tour 1 tour1 subtotal row3 tour2 row4 tour2 subtotal total
[code].....
but this shows all the data in the nested repeater not the ones that match the parentrepeater fields for example tour,theme,dep7 should match in the child repeater
I'm so confused I wasn't even sure what to make the title so that it would make sense.
Here is what I have:
[code]...
I have links at the top of the page that are the letters A-Z. What I want to do is click on one of the letters, then show only the div IDs that start with that letter. I can't figure out how to do this since I'm dynamically creating the ID names. I had it set up nicely with Javascript and CSS, but the function call was inside the repeater. The layout is changed now, and I don't understand how to make the div ID available outside the repeater.
what changed do I need to make to my code for it to achieve what I'm after.
At the moment I am getting a "cannot cast to type" error message with the below code.
I have also tried calling the ItemDataBound method in with the parent repeater tags and had no errors but when I clicked on the button it would just move back to the top of the page and would not hide or show any data. Also I have made the div style to none but the first record still shows its child but the rest don't.
I have set up an asp repeater to go through and display a list of people based on input parameters. Within that repeater I have a repeater that displays specific details about each person. No problem so far.
However, my requirement is that I only display the names, with a plus/minus sign to the left of the name. Clicking on the plus sign will expand that person's information to show the details. Clicking the minus sign will collapse the detail info.
I have a panel set up within my primary repeater that encompasses the secondary repeater.
Edit: I have a working solution already - I would just like to know why my original attempt didn't work. My original attempt is the code below.
I'm using the approach I found here:[URL] 306154 to implement a nested Repeater. Each parent item has one or more children items (the point of having the nested Repeater) with a dropdown horizontally aligned to each child item. In an effort to re-use the nested part of the Repeater I wanted to develop that piece as a user control but couldn't get it to work. I am wondering if it is even possible and if so how?
And here is my code behind for the user control. I noticed when I debugged NestedDataSource was null even though in the parent page load the data is there:
The page loads but nothing relating to the repeater appears on the screen. So, can you see anything wrong with what I have? Is the way I tried doing this even possible?
I am using a repater whose item template is having a dropdownlist. Now i want to access that dropdownlist from a button click event. Here is the code iam using :
For the solution, I cannot use any postback methods, because this is all working through ajax. The solution need to be implemented in the asp.net code. I have a List<WebPage> that contains a list of Links (List<Link>) and I need for all the links to bind repetitive information such as page title, id, url. Here is my current repeater.
<div id="result"> <asp:Repeater runat="server" id="results"> <Itemtemplate> <asp:Repeater runat="server" datasource='<%# Eval("Links") %>'> <Itemtemplate> <tr class="gradeX odd"> <td><%# Eval("Id") %></td> //property of WebPage (part of results repeater) <td><%# Eval("Title") %></td> //property of WebPage (part of results repeater) <td><%# Eval("Url") %></td> //property of WebPage (part of results repeater) <td><%# Eval("URL") %></td>//Property of Link <td><%# Eval("URLType") %></td> //Property of Link <td><%# Eval("URLState") %></td> //Property of Link </tr> </Itemtemplate> </asp:Repeater> </Itemtemplate> </asp:Repeater> </div>
If I have a custom user control (say, MyCustomControl.ascx) which contains a number of other controls including a repeater, is there any way to expose that repeater's templates as templates for MyCustomControl?
For example, I would want to be able to do this:
[code]....
There could potentially be more than one repeater or other templated controls within the parent control, in which case I would like to be able to expose all of those templates for all of the controls in the same way.
My first thought was to simply expose the repeater's templates as ITemplate properties on MyCustomControl, but that didn't work since there's no (obvious) way to access the repeater's DataItem from the templates doing it that way.
public string Module(int id,string university) { con = new SqlConnection(ConStr); con.Open(); cmd = new SqlCommand("SELECT college FROM tbluniversity where id=" + id, con); da = new SqlDataAdapter(cmd); con.Close(); ds = new DataSet(); da.Fill(ds);
//Here I want to find the inner repeator of current row then bind this dataset to that.
I'm having trouble managing how to call upon databind from clicking on a row over an already populated repeater that will populate data regarding the row clicked TO another repeater on the same page.
I've succeeded doing that with postback, calling a jquery click event of that row, taking the data of the specific row and passing it onto a "Querystring" and after postpack, it will be pushed into a Session which the ObjectDataSource of the secondary repeater will recognize and populate the data tables accordingly.
The problem is, I must do it without a postback or in other words purely on client side.
I have a weird thing happening. I have two identical databases installed on one virtual machine but under two different instances of SQLServer. For some reason, periodically when saving from one it will save to the other instead. Using debug, I have verified that the connection string is correct and when the item saves, it still saves to the wrong database.I use session variable, and am of the belief that it might have something to do with it...and t hat when I go from one to the other it is still getting the connection string form the other for some reason.To make sure that it isn't a problem, I make sure that I completely close out one database before opening the other in a new IE window.I assume that when I completely close out an internet explorer window that it abandons all session states. Is that true?
Does anyone know if its possible to have a nested repeater, with the nested repeater initially collapsed and expandable via the ajax CollapsiblePanelExtender
I want to display images by using repeater control. those images have to change with respect each 5seconds. how to change those images? those images should be in database? i kept images in my project folder. then now how to go further.
I have a Repeater which populates a list of Checkbox controls and Label controls. But it doesn't seem like the checked state of the checkboxes is remembered in ViewState until AFTER the first postback.
Scenario: I have 5 items in my custom checkbox list. I select the first 3 and submit the form. The first 3 are no longer selected. I select items 1, 3 and 5 and submit again. After the page is loaded 1, 3 and 5 are still selected.
Here's the entire code for the test page I'm using. My apologies for the VB :-p
Imports System.Xml
Partial Public Class _Default Inherits System.Web.UI.Page [code]....