Accessing SiteMapNode Container.DataItem From Outside Of Parent Repeater?
Feb 13, 2010
I am trying to access the current 'active' top level node from a sitemap repeater from outside of the ASP.NET repeater used to render it, this is for CSS styling purposes as I want to place the child nodes on the subsequent row with different styling horizontally. At present I have the following code which I can't get to display correctly using CSS.
[code]....
I would like to display the child nodes on the next light blue element which I can do perfectly well from a seperate div if this was not rendered using a child repeater. In the image below Blog and Services are top level nodes and their subseqent nodes (2 for each) should be displayed on the light-blue row below. Is this possible?
I am collecting user roles into a single dimension string array.
I have a repeater that its source set to that array. The repeater template includes list of checkboxes for the values in the array.The checkbox text is set to: Text='<%# Container.DataItem %>'
All is good till this point.
But I am trying to call a javascript function triggered by clickign a checkbox and pass it the container.dataitem, but the javascript doesn't seem to be reading the value and either complain about string not being in correct format or that treats the container.dataitem as a liter. This is the trial that didn't work (I tried many different things too):
DetermineVal(<%# DataBinder.Eval(Container.DataItem) %>); determineval is my javascript function
I have a repeater control bound to a collection of objects. When I fire off the button_onclick event, I need to have access to the dataitem to get the object properties. Here is what I have and my question is how do I access the underlying objects in a repeater in a button_onclick event
I have a ListView in which i have a function that creates images for users. I pass userGender,userImage1name,userIsImage1Aprooved values to the function in which i generate image.ie. if user has approved image i return it back, otherwise i return default image based on gender.y question is, is there any way to avoid passing 3 parameters to that function and to pass whole DataRow so i can get values of columns i need?In reality i pass about 12 parameters just made it easy for you.ie. i want to achieve something like that <%# GetImage(Container.Item) %> while in GetImage() i would be able to access Item("some_column_name") or C# version Item["some_column_name"].
I'm trying to pass a string value to a javascript function from a LinkButton's OnClientClick event, but the function is receiving "<%# Container.DataItem %>" instead of the value. Here's the code:
The container is a collection of strings. Why is it not evaluating?EDIT: This is located in a nested ListView. The datasource for the inner ListView is a property in the datasource of the outer ListView.
I'm trying to populate the DataPager using Container.DataItem (I'm not allowed to use FindControl) but I get this error
'System.Web.UI.WebControls.DataPager' does not contain a definition for 'DataItem' and no extension method 'DataItem' accepting a first argument of type 'System.Web.UI.WebControls.DataPager' could be found (are you missing a using directive or an assembly reference?)
So I've got two listviews; one nested inside the other. The parent is being bound to a collection of objects that contain fields such as MaxPrice, MinPrice, and SuggestedProducts. The nested one is being bound to the SuggestedProducts collection of the parent item. How could I reference MaxPrice and MinPrice in the nested listview? Is it even possible? If you need any clarification, leave me a comment and I'll update my question.
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
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'm working on a questionnaire type application in which questions are stored in a database. Therefore, I create my controls dynamically on every Page.OnLoad.This works like a charm and ViewState is persisted between postbacks because I ensure that my dynamic controls always have the same generated Control.ID.
In addition to the user control that dynamically populates the questions, my questionnaire page also contains a 'Status' section (also encapsulated by a user control) which represents the status of the questionnaire (choices are 'Complete', 'Started' or 'In Progress'). If the user changes the status of questionnaire (i.e. from 'In Progress' to 'Complete'), I need to postback to the server because the contents of the dynamic portion of the questionnaire depend on the selected status.
Some questions are always present regardless of status, and yet others may not be present at all for the selected status. The point is, when the status changes, I have to postback to the page and render the right set of questions. Additionally, I need to preserve any user entered values for those questions which are 'always available'.
However, due to the page life cycle in ASP.NET, the 'Status' user control's OnLoad, which contains the correct status needed to load the right questions from the DB, doesn't get executed until after the 'dynamic questions' user control has already been populated (with the wrong/stale values).
To get around this, I raise an event from my 'Status' user control to the main page to indicate that the Status has changed. The main page then raises an event on the 'dynamic questions' user control. Since by the time this event bubbles up, the 'dynamic questions' user control has already loaded the 'wrong' questions from the DB, it first calls Controls.Clear. It then happily uses the new status to query the database for the 'correct' questions and does a Control.Add() on each. FYI, Control.IDs are consistent across postbacks.
This solution works...sorta. The correct set of questions for the selected status do get rendered; however ViewState is getting lost for those 'always available' questions. I'm guessing this is because the 'dynamic questions' user control calls Controls.Clear when responding to the status changed event. This must somehow kill the association between ViewState and my dynamic controls, even though the Control.IDs are consistent.
This seems like such a common requirement, I'm virtually certain there is a better, cleaner and less error prone approach to accomplish this. In case its not plainly obvious, I haven't been able to grok the ASP.NET page life-cycle despite working with it for the last year.
I've a web project where i've an Tab Container (ajaxtoolkit), and when i run the project it works properly. But when i debug it, it gives me erros in all the controls inside the Tab Container that i'm accessing through .cs code behind (buttons, checkbox, etc).
Visual Studio gives me "The name 'controlname' does not exist in the current context". This happen to all controls inside the Tab Container that i'm accessing in code behind, but the Web project is running with no problems! As it's the first time that i use an Tab Container, i don't know if this is normal or maybe of Visual Studio 2010 RC (or not).
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.
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).
If for example my userControl has a CheckBox called IsGreatCoder and the userControl is embedded in a main page (parent page).
I normally have gained access to the IsGreatCoder.Checked value in the main-page by exposing it through a public property that I have to manually write (say "IsAGreatCoder").
If UserControl is included in the main page as "userControl1", then I would access it as "userControl1.IsAGreatCoder".
But, I was wondering if there was anyway to declare the UserControl such that all the UI controls added to it were declared as being public, that way allowing me to gain access to the actual controls in the main page (the parent).
Essentially I would like to be able do something like userControl1.IsGreatCoder.Checked instead of having to implement a property.
The reason I want to do this is that I want to have access to many more of the check-box's properties and it would be a pain to implement each one as a public property.