How To Show / Hide A Panel Within A Repeater From A Button In The Repeater Itself
Apr 7, 2010
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.
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.
the output I am getting at the moment, is my parent data displays along with my child data. However when I click on the button to toggle the views i am getting a "cannot cast type error"I have also tried to put the itemdatabound event in my parent repeater tag, that worked but when I click on the buttons it just keeps moving to the top of the page and won't hide or show any of the child data except for the first child of the first parent.
<%@Page Language="VB" EnableEventValidation="false"%> <%@Import Namespace="System.Data" %> <%@Import Namespace="System.Data.OleDb" %> <script runat="server"> Dim ds As DataSet, divdtls, btnview, repeat Sub ItemDataBound [code]...
I'm displaying summary and details customer info in each repeater row - inside the repeater .
The summary stuff is it's own div: (id="divHistory_Summary). The details stuff in it's own div:
(id="divHistory_details" )
The details div is hidden by default with inline style: display: none;
[code]....
I don't have the jquery.js file in the head of my app, so I hope it's ok to call the script right here. This app has many nested master pages, and didn't know which one to put the call to jquery file.
The page loads, repeater populates, the details stuff is hidden. When clicking the summary div, nothing happens - the details stuff won't show.
I added a (Read More...) Div to my repeater's item template, that doesn't contain any information.
I want to add a text button or an anchor to my item template..when it's clicked it should call a javascript method that writes information to the Div and it will take the content to write as a parameter, the content will be passed as an Eval method, for example it will eval("education")...and when it's clicked again it will hide the Div
I tried various and near approaches but it all worked outside the repeater and item template tags, but if I placed the identical code to the repeater and my javascript to the head tag it won't function!
I don't want to post my code, because I'm sure it's an easy and essential trick for any developer...so I was hoping for an original example not an edit to my test code(beginners logic)
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 have a panel at the top of my page which contains some cascading dropdown lists. Once the user selects from the lists, they will click a 'Search' asp.net button and a gridview will appear below showing the search results. What I want to do is use JQuery to toggle the visibility of the search panel. I tried using the Ajax collapsiblepanelextender but ran into all kinds of problems, because there are many updatepanels and ajax extension controls on this page. It sounds so simple, just hide or show, but I can't get it to work. When I click the button, the panel hides. When I click it again, the panel does not reappear. I have also tried having 2 buttons, 'hide' and 'show', and had the same results. right now here is my code:
I have two update panels on my page. One of them contains a list of users which is retrieved from the database. When I click a search button (which is outside of the update panel) the users are retrieved from SQL server and displayed in a repeater inside this update panel. Each of the users has a button next to them to 'Edit'. The seconds update panel contains all of the fields for a user. Textboxes, checkboxes and what not.
My plan is to click the search button as you normally would, and then when you click the 'Edit' button on a user, the second update panel fills with their details. This works except that when I do this the first update panel is updated again and because it hasn't searched for any users it goes blank.
So what I did was set both the update panels to conditional, and then call the first panels update at the end of the search code in the search button click event. So that worked, but now the repeater inside the first update panel is not firing the Item_Command event, so I can't get the details for a user. How can I resolve this so that the repeater button works inside the conditional update panel?
I have a bit of a strange problem and wondering if anyone can help.I have an update panel that has a timer set as the AsyncPostBackTrigger. In the repeater I have a few buttons which have on click events.The on click of these buttons does not appear to fire until the timer has ticked. My code is as follows:
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.
So as the footer is writing programmatically, I would like to hide the FooterTemplate for somebody who use the custom repeater.. I was thinking [PersistenceMode(PersistenceMode.InnerDefaultProperty)] will do that but apparently not..
I know how to use a simple If statement wrapped in the <%# tags to hide something, but I don't know how to do it in a repeater when I need to access Container.DataItem, as in I need the dataItem currently being 'repeated'
eg
if (CurrentValidationMessage.Link != "") { show a hyperlink } Markup: <asp:Repeater ID="repValidationResults" runat="server"> <HeaderTemplate> </HeaderTemplate> <ItemTemplate> <a href='<%# ((MttImportValidationMessage)Container.DataItem).EditLink %>'> Link to erroneous Milestone </a> <%# ((MttImportValidationMessage)Container.DataItem).Message %> <br /> </ItemTemplate> </asp:Repeater>
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?