Forms Data Controls :: Trying To Build A Repeater Dynamically Through The Code Behind?
Feb 9, 2010
I am trying to build a repeater dynamically through the code behind. I found this code on the microsoft site:
Protected Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Repeater1.HeaderTemplate = New MyTemplate(ListItemType.Header)
Repeater1.ItemTemplate = New MyTemplate(ListItemType.Item)
Repeater1.AlternatingItemTemplate = _
New MyTemplate(ListItemType.AlternatingItem)
Repeater1.FooterTemplate = New MyTemplate(ListItemType.Footer)
Repeater1.DataSource = New String() {"one", "two", "three", "four"}
[Code]....
So this code works without throwing any exceptions, but what I would like to do is accessing the DataSource inside of Sub InstantiateIn(). I know you can access the DataSource in the front end using DataBinder.Eval and Container.DataItem, but is there a way to access the data during the InstantiateIn() Sub?
Or if there is another way to do this i'm up for trying that as well. Essentially I am trying to avoid writing asp.net code, instead I would rather write everything in vb (code-behind)
I have SQLDataSource for my gridview. By default it works fine but i need to determine a few things before calling my procedure. By this i mean i need to determine a few things about the fields completed and set a flag to determine where the procedure will look.
I found a few examples online on passing parameters in code behind, but cant seem to get them to work. Here is what i tried and cant get results back. When i execute the procedure on the SQL side with the same parameter values, it works, so i know its returning results, so means my values are not being sent or im doing something really wrong. I have some of the lines commented out so the page can load and display for now.. but i need to get it working with custom parameters and flags.
I figured I'd post here while I'm scouring the internet for a solution to my problem.
This code works:
[Code]....
My DataAccess method just uses the SQL statement and returns a dataset. If I comment out the repeater DataSource and DataBind lines, it will build successfully. And I know the dataTable has the information I want because I was able to step through and see it. If I leave in the DataSource and DataBind lines, I'm not even able to step through. I have no errors and no warnings, just build failed.
*EDIT* I apologize for the ugliness of this post, I don't know what happened. I changed the repeater to a DataGrid, and still got the Build Error without any errors. I went on anyway, came back, and now everything works fine. A little bug must've crawled in while I wasn't looking.
I've been using a repeater to build a website's site map page by binding to the web.sitemap file. For example, to display 2 levels of links:
[Code]....
So far, everything works well. However, in some cases, I do not want to display certain pages in the site map. I've added a custom attribute to each node (nodisplay= 'true').How can i check for this attibute, and avoid it from being displayed by in the repeater.
I have a .NET 1 web app that is using a Oracle database, the web app has a page of table names that allows the users to select, there are 101 tables listed on the page. When the user clicks on a table name, it takes them to a page that shows user friendly column headers, the table data, etc. Is there a way to use one GridView to do this and show the user friendly column headers instead of creating 101 pages or 101 user controls and show that control based on the table passed into the page?
for example: the user clicks table 22, I want my gridview to look like this
Buyer's Name State City Zip Code Phone Number
if they click table 55 I want them to see this
Product Wholesale Price MSRP Sale Price On Sale (check box)
and so I, I would like to use 1 gridview on one page if possible and build the grid on the "fly", We have the user friendly column headers in a table.
So my questions are:
is this possible, if so, what is the best approach in doing this
from a scalabilty level and maintenance level, would the 1 gridview be worth for all 101 (and growing tables), or would building a seperate user control for each table be better?
What I am trying to achieve:I am trying to take the value of the selected index and depending on what this value is (e.g. the case selection in the code below) run a different query on the dataset and then create a repeater control dynamically to output each row with an item template that I can use css to style.
In other words: When a user choses a list item it shows only rows from the dataset that match the list item chosen. For example if a user choses Closed Tickets they only see rows from the dataset that have a STATUS of 'CLOSED'.
What I have done so far: [Code]....
What I'm struggling with at the moment is:
1) That the case selection works but the selection of the appropriate data from the dataset doesn't seem to be happening. And this data isn't getting stored in rows as I had hoped.
2) I'm not sure entirely how to display the dynamically created repeater control in the admin.aspx page.
I am using Repeater control. In DataBound event I am preparing output of item and everything works ok. But now I need to add a command button to item. I cannot add button to item template in designer (some project specifications do not allow it). I create new button at DataBound, set unique ID, command name and argument and bind it to command event and, thenm place it to Item controls container. It is not working as command button.
I have tried binding images to repeater from one folder called images . But now, I am trying to bind the repeater with different folder's images, based on which menu item is clicked like "Wedding", "Birthday". When "Wedding" is clicked then it repeater should be loaded from Wedding folder's images similarly with "Birthday".
Currently i am using following code to load from single folder.
if { Repeater1.DataSource = di.GetFiles(); Repeater1.DataBind(); (!IsPostBack)string imgDir = Server.MapPath("~/images");DirectoryInfo di = new DirectoryInfo(imgDir);
When I go to the page_load event in the codebehind, I can't seem to find this control at all. No intellisense whatesover. I've tried renaming, closing the solution, even changing the codebehind directive at the top of my aspx page to "codefile".
I have a Repeater who should show some data from my ms.sql server. But all code inside the Repater is not shown on my .aspx page. What am i doing wrong. I have a similar Repeater on another page and there it works fine.
I have a asp:repeater control which I am using to display a photo and the Name. So for this I have to execute SQL query and unfortunately I dont have the control of the database - table design. So the photo comes from one table and the Name comes from another table. I wrote 2 sql queries to get both these information created 2 sqldatareader. So now I have to bind the repeater control to both of these reader. But I know it does not work. Is there any other way I can do this? I even tried to nest a repeater control inside another. But that does not work anyway.
Let me try to explain my situation. I have a database table which contains, among other things, a boolean column called PermissionSlipRequired. I have a repeater on my page, and before each row in the database is shown in the repeater, I want to use my code behind to check the value of PermissionSlipRequired. Based on whether the value of PermissionSlipRequired is true or false, I want to change the text of a literal within the repeater. That's a real mouthful; hopefully some markup and code will clarify. Here's my repeater:
[Code]....
Here is what I've been able to come up with for my code behind. Needless to say, this code doesn't work.
[Code]....
As a former PHP user who is trying to migrate to asp.net.
After much research, no solution can be found to do what I want by combining these two controls. Currently, I have a repeater control which, in page_load, takes the querystring and queries the database accordingly, puts the resulst in a datatable, and binds the datatable to the repeater. Everything works fine, no problem there. It's just that I have many columns coming from the query and there are many rows as well. So, I thought it would be easier to incorporate the accordion, so that the header of each accordion pane would show some unique fields (name, whatever...) as the header, and the rest of the many fields in the content. This way, there would be many closed accordion panes showing the name from the row returned. If the pane is clicked, the pane would open and show the rest of the results.
The problems I've had are that the repeater is not accessible from the code behind if it is inside the accordion. But I'm sure I wasn't doing it right anyways. I'm just trying to have an accordion that has as many panes as there are results from a datasource. If there is something other than a repeater that you can suggest, or the correct way to incorporate the repeater in the accordion to do what I want, suggest whatever! I just need to format how the results display how I want, unlike a gridview (I used tables in my normal repeater, and that worked fine, I just need to get that repeater to work inside of the accordion).
(and I know this isn't the section to ask about the accordion, but what is the AccordionExtender? It's not in the toolbox, and I can't find much online. It won't be recognized by Visual Studio, so I don't know what to do. If I could get that, I feel like it could solve my problem, as I found a possible solution online) I don't need to post my code, as it's a simple repeater, and trying to integrate it within the accordion isn't working no matter which way I try since I can't DataBind() in the codebehind. And yes, I tried to FindControl within the accordion but it wouldn't find the repeater.
I have a repeater which has it's data bound in the code behing. I want it so that as each row is written out I can check the data and if a piece of information stored in the database exists, I can then do something (format the text in a different manner). So far I have this in my code behind:
I have a Data Repeater to which I need to add x number of images depending on their existence in the database.
I need the images added within hyperlinks for Javascript functionality. In order to dynamically add the hyperlinks and images I have placed them within a panel in the data repeater and am adding them in the ItemDataBound event.
The problem is that only the first image is being written to the datarepeater.
 i'm using a repeater with an hyperlink and i'm displaying some data from a table x and when the link is clicked i want to add some from the displayed data in another table y..I used a datasource for selecting information , should i use another datasource for the insert command or what to do ..
I´m developing a database driven asp.net 4.0 application and are currently stuck with the following issue.
I need to dynamically add checkboxes using code behind. These checkboxes represent activities that the user may chose from by ticking the ones that they are interested in. I do not know the number or which activities that should be presented until runtime so hard coding checkboxes is not an option.
On the client side I need to keep track of which checkboxes/activities the user have chosen as I need to calculate the cost for these without doing a postback. I would like to use javascript to find out what activities that are chosen and also calculate the total cost using javascript.
To implement this I tried to use Page.ClientScript.RegisterExpandoAttribute (server side) and javascript (client side, but I do not manage as ticking any of the checkboxes will not fire a client side event. I´m also using Telerik RadPanelBar controler.
I´ve been stuck with this for some time now and have a nice deadline coming up :) I would be most thankfull if anyone could point me in the correct direction as I feel a bit clueless. Perhaps there is a much easier way of solving this? Perhaps my code is all wrong?