Forms Data Controls :: How To Alter A Control In A Repeater's ItemTemplate From A Handler
Mar 27, 2010
I have a repeater bound to a datasource that servers as a list of birds. When the user clicks an item in the list the bird's image is displayed on the page. I want to change the background color of the item that is currently selected in the OnClick handler for the main item in my repeater's ItemTemplate.
I have changed the styling of controls prgrammatically before and it worked fine but in those cases i used the ID of the control to directly access it in my code behind file. But since this is some arbitrary item in a repeater I don't know it's ID at runtime, all I have is the sender object passed to the control's OnClick handler. So in my code behind file, I tried casting the sender object passed to the OnClick handler to the appropriate type and used Style.Add("background-color", highlitColor) but it failed to change anything.
I had a thought - maybe this sender object gets passed by value so all I did was change the Style of a COPY of the control item.
If this is indeed my problem, how do I start with a casted sender object in an event handler and get a reference to the actual control in order to change it's Style?
I have a repeater control that is getting exported to excel. Well excel will no longer show the data that was in the textboxes. I've read the article on exporting a gridview having the same problem and how you replace the texboxes with literal contrls. I was wondering if there is an article like it only for a repeater control.
I'm bounding data to repeater control by using SqlDataSource Control
bounded data is something like this:
attributeid attributename 1 color 2 size
How can I get access to attributeid values in Repeater control's ItemDataBound event handler,
I tried to use DataBinder.GetPropertyValue(container,"attribuetid"), but I can't set container, am I doing right, or maybe I should use another approach.
I have tried many different combinations to try to get this to work, but I cannot. In the ItemTemplate of a Repeater control, I have a <form> tag. For this third party button to work, each button needs to be surrounded by <form></form> tags. I cannot get the first iteration of the repeater to display the tag, but 2, 3 and beyond, it will. It doesn't make sense to me. Because of this, IE is displaying the page in a funky way.
To see the generated code on the page, http://AdvancedSurveillancePro.com/services.aspx
I am having big trouble with this issue, getting a message from IE that a script is being running for a long time and asking me to stop it myself.
The HTMLEditor seems to be uncomptible with this one.
I am also getting a very weak performance when adding this Ajax control.
I think this control is very heavy, but I'm not sure. If I am not wrong, this post I'm writing is inside the same control and I can see it takes time to load it in my page.
In my application I have successfully pulled some rows from a database into a DataSet and then used an ASP.NET Repeater Control to create a div container for each row with each field contained within a span element as follows:
My problem is that I want the .png graphic link to have a onclick event so that a new div is dynamically inserted under the div to show data from a seperate database table. However since its all declared within the ItemTemplate then targeting the correct div using the JS DOM would be difficult/impossible as the id for each of the divs will be the same.
If this is going to be infeasible then what is the possibility of having data brought in from multiple tables would I have to manipulate the DataSet to include the extra columns as I think Repeater Controls can only have a single DataSet (corret me if i'm wrong).
I have a Repeater displaying some data that doesn't do what I'd like to see. If a certain condition is met (ex: parent.NumOfChildren > 0) I would like a hyperlink shown. Here is what I have so far:
In this case, the "View Children" link shows up for every item in my Repeater, but I'd like it shown only if parent.GetNumOfChildren() > 0. Would it be correct to try setting the Visible="true/false" property of the HyperLink? Is that the norm for this sort of problem? Or, is there a way to wrap the entire <asp:Hyperlink> ... </asp:Hyperlink> tag in an if statement that has a reference to the object that is currently being interated in the Repeater? Ie:
using a repeater to display multiple 'comments' related to a parent database entity (a 'task' in my case). When the user creates these comments they can optionally attach a file. Now, I'm working on the page that lists these comments and I'm not sure how to go about displaying the link to the attached file, if one is present. There may not be a file. The database record that contains the comment will also contain the url to the file if one was attached.
what are my options for this? I would like to just display a link to the file after the comment content, only if a file is available.
Inside repeater's itemtemplate I have a Panel server control.I need to assign special Id for it, because I need to work with some javascript functions that use this Id.
But this solution is not good because after a postback the page is re -rendered and I lose the new ID. (And I don't want to rebind repeater after every postback)
I tried to set the ID on aspx page like that:
<asp:Panel id='<%# Eval("ID") %>'
and some other variations but always get compile errors.
can anyone tell how to use slideToggle function on LinkButton that is placed in ItemTemplate of a Repeater control. Upon clicking the LinkButton a Panel below that link will apear that contains other controls. But how can i write dynamic jQuery Script for each LinkButton ?
switch(e.CommandName) { case "Edit": //make editTemplate div visible HtmlGenericControl divEditContact = (HtmlGenericControl)e.Item.FindControl ("divEditContact"); divEditContact.Visible = true; break; case "Update": Employee updateEmployee = new Employee { employeeName = txtName.Text: employeeEmail = txtEmail.Text: } updateEmployee = API.UpdateEmployee(updateEmployee); //display lblUpdateConfirm visible to True // so user sees this confirm messge in the newly updated ItemTemplate }
How can I access my lblUpdateConfirm and turn its Text state to visible from inside the ItemCommand, so that when the user sees the newly updated ITemTemplate, the label is showing the "Update Confirmed" message?
The following seems reasonable, but it returns an error:
<asp:Repeater ID="RepeaterF" runat="server" DataSourceID="DSF" > <ItemTemplate> <% If Eval("Item_Batch") = 0 Then %><tr><td></td><td colspan="2"></td><td></td></tr><% Else %>........
Error: "Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control."
I am finding it difficult to accept that the whole Repeater approach has any benefits over just creating a loop in code, iterating through a recordset, and building a html table into a variable, then dumping it to the page. This repeater is spawning pages of code and objects, and surely this is all using up server resources.
I have done the itemtemplate and edittemplate,when I click on the button in itemtemplate, the edittemplate will show.But that row in itemtemplate will disappear.How can I keep that row in itemtemplate and ecotent in edittemplate both appear?
I want to pass the checked checkboxes value of my listview control to a second page so I can display the listview in this second page with only those selected records
this is what I am have so far , but dont really know how to get it to work the desire way.. Code is working but I am afraid that chekcbox and listview values for my loop are not correct
I'm trying to programatically reference a FileUpload control which I have within an ItemTemplate. I get a 'Name FileUpload1 is not declared' error message. Code below: