Loading User Control In A Repeater?
Mar 23, 2010
I have a Repeater control that loads instances of a custom control I have built. This repeater looks like this:
<asp:Repeater ID="myRepeater" runat="server" OnLoad="myRepeater_Load">
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<tr><td><my:CustomControl ID="myControl" runat="server"
OnLoad="myControl_Load" />
</td></tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
I bind to the Repeater through the myRepeater_Load event handler. My custom control is used to render an item within the Repeater. Because of this, I am trying to set properties on the custom control during the myControl_Load event handler. However, I do not know how to access the current item during the myControl_Load event.
Is there a way I can pass along the current item or access the current item during the myControl_Load event? If so, how?
View 3 Replies
Similar Messages:
Aug 19, 2013
I'm creating a simple CMS for a fairly simple web page. I'm currently working on a part for displaying news on the main page.
The controls I have on the page:
- a GridView control with enabled pagging and a SELECT button,
- an Image control for displaying news cover picture,
- CKeditor control for editing news text,
- Repeater control for displaying pictures from database
How does it all work?
In Page_load I have the following:
vb.net Code:
connectionString = "Data Source=KORISNIK-PCSQLEXPRESS;Initial Catalog=****;
User ID=**;Password=****" conn = New SqlConnection(connectionString)
If conn.State = ConnectionState.Closed Or conn.State = ConnectionState.Broken Then
Try conn.Open() If Not IsPostBack Then bindGrid()
[Code] ...
As you can see, I load the GridView control with news from DB. At this moment all other control are disabled. User has to SELECT the row he wants to edit, and click the MODIFY button.
This is what happens when user clicks the MODIFY button:
vb.net Code:
Private Function selectForEdit() dsSelectForEdit = New DataSet
captionPicture.ImageUrl = "" enableCommands()
Dim sqlQuery As String
sqlQuery = "SELECT news.newsCaption, news.newsIntro, news.newsCoverPicture, news.newsStatus,
[Code] ....
Basically, I select newsDetails based on newsID. Also, this is where I take the coverPicture from the database using a generic handler.
This is the code for showImage.ashx:
vb.net Code:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim newsID As Int32 If Not context.Request.QueryString("newsID") Is Nothing Then
newsID = Convert.ToInt32(context.Request.QueryString("newsID")) Else
Throw New ArgumentException("No parameter specified") End If
[Code] ....
This part works fine, as the picture is correctly displayed in the Image control. Now, I also want to load the pictures that are related to the selected news. So, I use this function:
vb.net Code:
Private Function selectNewsPictures() dsSelectPicturesForEdit = New DataSet enableCommands()
Dim sqlQuery As String sqlQuery = "SELECT newsDetailsPictureID,newsDetailsPicture,newsDetailsPictureCaption,newsDetailsPictureDescription FROM newsDetailsPictures WHERE newsID = @newsIDEditing" myCommand = New SqlCommand(sqlQuery, conn) myCommand.Parameters.Add("@newsIDEditing", SqlDbType.Int, 250)
[Code] ....
You can see that I take pictureID's and store them into a List (of integer). That way I can use those integers in showNewsPictures.ashx to display all the pictures.
showNewsPictures.ashx:
vb.net Code:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim newsID As Int32 If Not context.Request.QueryString("pictureID") Is Nothing Then
newsID = Convert.ToInt32(context.Request.QueryString("pictureID")) Else
Throw New ArgumentException("No parameter specified") End If
[Code] ....
The picture ID's are being sent through pictureRepeater_ItemDataBound:
vb.net Code:
Private Sub pictureRepeater_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
Handles pictureRepeater.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim ctrl As New Image ctrl = e.Item.FindControl("pictureHolder")
ctrl.Width = 100 ctrl.Height = 100 ctrl.ImageUrl = "~/showNewsPictures.ashx?pictureID=" &
listOfIDs.Item(itemIndex) itemIndex = itemIndex + 1 End If End Sub
THE PROBLEM:
I load the page, select the news, click the MODIFY button and all works well. The news details are loaded, the cover picture is loaded, the repeater pictures are loaded.
I click the cancel button (clears all the commands and disables them) and I get an error saying the DataReader needs to be closed.And I never use one This happens either in showNewsPictures.ashx or showImage.ashx.
In some other scenario, this happens right after I click the MODIFY button.
View 1 Replies
Feb 18, 2011
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?
Here is my user control apsx:
<asp:Repeater ID="NestedRepeater" runat="server">
....
<ItemTemplate>
<tr class="text" id="RepeaterItemRow" runat="server">
<td>
<%#DataBinder.Eval(Container.DataItem, "Name") %>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</ItemTemplate>
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:
public DataSet NestedDataSource
{
get;
set;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
NestedRepeater.DataSource = NestedDataSource;
NestedRepeater.DataBind();
}
}
In the parent Repeater in the `<ItemTemplate> I have:
<asp:RepUC ID="NestRep" runat="server" NestedDataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("nestedrel") %>'>
And finally the page code behind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BuildWBS();
}
}
private void BuildPage()
{
DataSet ds = new DataSet();
ds = DataAccessLayer.GetData("System");
ds.Relations.Add("nestedrel", ds.Tables[0].Columns["Id"], ds.Tables[1].Columns["ParentId"]);
ParentRepeater.DataSource = ds;
ParentRepeater.DataBind();
}
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?
View 1 Replies
Feb 3, 2014
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>
View 1 Replies
Jun 3, 2010
i created a user control called userCon.asxc. may i know how do i do when i click on button1, then the userCon.asxc will load into panel1?
I checked on internet, but found only those loading the user control to page when execute. What i want is to load user control into panel1 when button1 is click. .
View 3 Replies
Jan 19, 2011
i have a BaseMasterUserControl.ascx and i have create a another ChildUserControl1.ascx
and ChildUserControl2.ascx, both are inherit from a BaseMasterUserControl.ascx.
i have hosted the BaseMasterUserControl.ascx in an aspx page. At runtime i am deciding
which usercontrol should be load. so i am loading a specific usercontrol dynamically and
assigning it to baseusecontrol but content are not visual, is this possible?
Code:
[code]....
View 2 Replies
Jul 28, 2010
so I have this custom user control, just some data inside divs with a fancy css.
So inside my page I need to add it multiple times, and I do so in code behind within loop.
Now, this code doesn't work
[Code]....
and of course it works fine now. My questions would be - why? can I do it without pecifying file name and just creating control the normal way like in first example?:S
View 2 Replies
Jun 21, 2010
I have a usercontrol which has a combobox inside it.
This UserControl is the inside an asp panel - and when the panel is visible, the dropdownlist within the control binds to its datasource and behaves itself.
When the panel visibility is set to false, the dropdownlist within the usercontrol is empty.
View 1 Replies
Feb 11, 2010
I'm loading a user control programatically like this:
[code].....
The problem I have is that all the controls in my user controls are null, is there something else I have to do to load the child controls?
View 1 Replies
Jan 23, 2011
Situation: I have a drop down list which I need to pass on to a webservice on button click. I am using Sys.Net.WebServiceProxy.Invoke to make webservice call.
Everything is happening inside a usercontrol which loads on runtime using dynamicpopulate extender.
I get following error:
Sys.InvalidOperationException: Cannot serialize object with cyclic reference within child properties.
Situation: Usercontrol also has a listview which is bound to dataset. However on calling listview.DataBind() in side the webservice method.
I get following error:
The ListView control 'ProductsListView' does not have a naming container. Ensure that the control is added to the page before calling DataBind.
There is no problem when call to service method is parameter less and listitem is not bound.
View 5 Replies
May 5, 2010
i have a page it contains a User Control. in it we have a Button "View Tree" it will open a pop up window (contins a tree view).when we select any node in the tree the Corresponding item will be Loaded in the User Control and Close the Popup.i want to achive this With out re loading the total page. i am using VS 2008.
View 1 Replies
Jan 8, 2010
Wasn't quite sure where to post this, seems like the issues could be any number of things, so I'm trying to keep it general... mods, feel free to relocate appropriately.
I am trying to build a page which will load various web user controls dynamically in response to menu selections made by the user, and then allow other interactions inside those controls (such as gridview manipulation and updates). The content page simply has a loginview, an ASP:Menu control, and an ASP:Placeholder. The placeholder is filled by the appropriate user control in response to the menu selection. Selecting a menu item causes a postback and the correct control is loaded as expected.
I realized that using dynamic loading with interactive controls would be a problem with respect to postbacks, so I added a ScriptManager to the content page and enclosed the gridview controls in the web user controls within UpdatePanels, thinking that all postbacks required by the GridView would be handled inside the UpdatePanel and not cause the parent page to refresh (which would then wipe out the dynamically loaded control). However, it does not seem to work this way. Instead, although the control containing the GridView loads correctly and displays data, when I attempt to page, edit, or select any item on the GridView, nothing happens on the first click. If I click on any item inside the control a second time, the entire page refreshes and the control and its contents disappear.
I have removed all the code inside the web user control and placed it directly into the content page to test, and everything functions correctly in that case. I think therefore that I must be missing something with how the user control is working, particularly with respect to the UpdatePanel. Is it just not possible to use an UpdatePanel to confine actions inside a user control that would otherwise cause the entire page to postback, or am I missing something somewhere?
Psuedo-code for the issue below
Content page
[Code]....
Control
[Code]....
View 1 Replies
Sep 2, 2010
I have a repeater with which I want to use to show a user control multiple times, populated with dataCurrently, I have this:
<asp:Repeater runat="server" ID="MyRepeater" >
<ItemTemplate>
<uc1:MyItems ID="MyItems1" runat="server" />
</ItemTemplate>
</asp:Repeater>
View 2 Replies
Jun 5, 2010
I have usercontrols which are loading at runtime in my aspx... (This part is working fine).
Now i need to invoke the methods of the user control which has been loaded..
How to invoke those methods??
like if i have 3 methods in usercontrol which is loaded at runtime:
[Code]....
Now how to invoke these methods at runtime?
View 11 Replies
Dec 24, 2010
I have a user control that contains a modal popup extender.
I am using the user control inside of a repeater so it could be shown multiple times on a page.
Everything works fine if the repeater only contains one item.
When there are multiple user controls on the page I get the following error:
"Microsoft JScript runtime error: Sys.InvalidOperationException: Two components with the same id 'PosAdjPopup' can't be added to the application."
How do I get my user control to work with the modal popup extender when it will be used multiple times on a page?
Can I keep the modal popup extender in the user control or do I have to put it on my aspx page and trap the event on the button click?
View 1 Replies
Sep 28, 2010
I was wondering if there's a way in Umbraco to log errors that we get when it fails to load xslt or user-controls. Generally it shows a red box saying it couldn't load the control and stuff. Is there a way to properly log this?
View 1 Replies
Jan 15, 2010
Relevant code from DetailsBERS.ascx file:
<%@ Register Src="BERS.ascx" TagName="BERS" TagPrefix="ucBERS" %>
<asp:Repeater ID="repeatBERS" runat="server"><ItemTemplate>
<tr>
<td id="Td1" runat="server">
<asp:TextBox runat="server" ID="txtTest" Text='<%#DataBinder.Eval(Container, "DataItem.id_bers")%>' MaxLength='<%#DataBinder.Eval(Container, "DataItem.id_bers")%>' />
<ucBERS:BERS ID="ucBERS" runat="server" IdBers='<%#DataBinder.Eval(Container, "DataItem.id_bers")%>' />
</td>
</tr>
</ItemTemplate></asp:Repeater>
[Code]....
View 1 Replies
Mar 11, 2010
I have a simple user control that I have placed inside a repeater. I want to access it through the ItemDataBound event of the repeater. Here's my code so far:
[Code]....
Not so sure what to do about all of this. I have developed a simple calendar using an XML doc and a repeater. The parent repeater contains a child repeater that lists events based on the date. I have a User Control that has some unique capablities for control the date in a link button. I want the user to click on the User Control and be able to use the information to do something. Bottom line, I want to access the linkbutton inside the repeater.
View 1 Replies
May 20, 2010
I have a user control that contains a repeater. We have added some paging and sorting into the user control and it all works well.
What I need now is a nice way to catch the OnItemDataBound event of the inner repeater and then bubble it up to be accessible directly from the user control from within the page.
We have tried catching it and then declaring it in the user control but it just won't work.
View 2 Replies
Dec 21, 2012
I am using Linkbutton inside the Repeater Control to display the paging ........and m calling Page change event on client click ....m attaching u code that m using it work fine in some webform but somewhere it didn't go the page change method on clicking page no. .....
I am writing ds code in source code of page......
<asp:Repeater ID="rptPager" runat="server">
<ItemTemplate>
asp:LinkButton ID="lnkPage" runat="server" Text='<%#Eval("Text") %>' CommandArgument='<%# Eval("Value") %>'
Enabled='<%# Eval("Enabled") %>' OnClick="Page_Changed" CssClass='<%# Convert.ToBoolean(
Eval("Enabled")) == true ? "LBR" : "Active" %>'>></asp:LinkButton></ItemTemplate>
</asp:Repeater>
View 1 Replies
Apr 16, 2010
I have a user control inside a repeater. I am binding a collection of objects to the repeater.
My user control has a public property to retrieve the object (setobject)
How do i pass each object through to the user control and not just the object property value? What is the syntax to do this?
[code]....
View 1 Replies
Jul 26, 2010
I am using .net 3.5 framework and i am using repeater control in my application.I am using link button to display the records.Displaying 9 records in a page.Show all button is there.When i click on show all button(Result of 250 records) then the page is loading and hanging for some time anf then it is displaying the all records.I know the time taken between the server and the browser.But i need to avoid the hanging of the page and the loading time should be reduced.How to solve this issue.If the page contains 9 products then it is loaded quickly.But if it contains lot of images then it's hanged. some of my friends told to use the jquery but i have noo idea regarding jquery so can anyone give an solution for this.Till it's breaking my head.
View 2 Replies
Jan 20, 2010
I have 2 tables A and B that have a many to many relationship. I am using nested repeaters to show the data in a web page. My issue is, how do I write an ObjectQuery or an IQueryable query that returns the parent rows in A and the child rows in B so that I can use them as my data sources for my inner and out repeater. I have the code I wrote so far below but I am not sure if it is correct or even close.
<asp:Repeater ID="A" runat="server"><br/>
<ItemTemplate><br/>
<h2 class="Information"><br/>
[code]...
View 1 Replies
Jun 17, 2010
I want to bind parent repeater item index in child repeater control using inline code not code behind side.
For example
[Code]....
View 2 Replies
Jun 4, 2010
I have written a user control that captures some user input and has a Save button to save it to the DB. I use a repeater to render a number of these controls on the page - imagine a list of multiple choice questions with a Save button by each question.
I am loading the user control inside the repeater's ItemDataBound event like this (code simplified):
[code]....
The problem is that when the Save button is clicked, the page posts back, but lbnUpdate_Click is not called. The Page_Load event of the page itself is called however.
I should mention that the repeater is part of a user control, and that user control is loaded inside another user control (this is a DotNetNuke site which makes heavy use of user controls). The Save button link looks like this:
javascript:__doPostBack('dnn$ctr498$AssignmentsList$rptAssignments$ctl04$ctl00$lbnUpdate','')
View 3 Replies