C# - Itemdatabound Event In Listview - Getting Error?
Jul 13, 2010
i am getting the following error during itemdataboundevent of a listview. Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.Compiler Error Message: CS0030: Cannot convert type 'System.Web.UI.WebControls.ListViewItemType' to 'System.Data.DataRowView'
Source Error:
Line 91: CheckBox chk = (CheckBox)e.Item.FindControl("chkFocusArea");
Line 92:
Line 93: System.Data.DataRowView rowView = (System.Data.DataRowView)e.Item.ItemType;
Line 94:
Line 95: }
my code behind for itembound event is
protected void lvFocusArea_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
CheckBox chk = (CheckBox)e.Item.FindControl("chkFocusArea");
System.Data.DataRowView rowView = (System.Data.DataRowView)e.Item.ItemType;
}
}
I'm presenting a list of products within a ListView. Each product can have associated "Options" (Size, Colour etc), but may have none. For each product that gets added, I need to render a dropdownlist for each of its options. E.g. A "Colour" dropdown might have "Black", "White", "Red" etc. I need to generate these controls dynamically, as they are defined by the data itself.
So far, so good. The dropdowns are rendered, and everything "looks" good. The trouble is, I can't work out how to actually get it to work. .Net is complaining about "EnableEventValidation", and ViewState won't work as I've added the controls late in the page's life cycle. As these controls are dynamic, I don't know how to pick up the selected values, and persist them on a post back! When the user clicks on the "Add to basket" option for the product, I need to determine which options the user has selected, and add them to the basket.
Am I missing something here? Is there an easier way of achieving this? I kind-of feel like I'm in a "chicken and egg" situation here. I can't create the controls until the data is loaded (in the ItemDataBound event), but that too late for ViewState. Is there a generally accepted best approach for achieving this sort of thing in ASP/Net?
I stumbled into a problem which is that FindControl will only return a control in the ListView after the listview has been databound. Here is the code which is not working, and I'm getting the "Object reference not set to an instance of an object error" when I try to add the attribute to the control:
I am populating an asp.net listview control from my page_load event. Unfortunately, due to my projects requirements, I have to use a third party control within my listviews ItemTemplate that needs to have database values written to its attributes before my listview control is bound, if this is not the case my control flags a null reference exception error. From some investigation into the listview control, it seems that the only way to do this is through my listviews ItemDataBound event as my thrid party control will hold different value depending on each row.was wondering if it's at all possible to force my listviews ItemDataBound event to fire before I call mylistview.databind();?
using a listView control... I'm trying to use the ItemDataBound event to map a field's native value to a more 'friendly' name... so far I have the code to access the underlying data so the decision can be made for the actual mapping, but I don't know how to actually change the data displayed?
I am attaching an image to a listview from code behind, the image depends on a value from the database and there are 5 different images.It sometimes works fine and then will randomly come up with an error, when nothing has changed, the error is:[Code]....
It doesn't seem to make sense to me because ImageUrl IS a member of image. Here is my code:
The ItemDataBound event of the ASP.NET ListView seems to only deal with the visible page as determined by the DataPager. How would I be able to utilize data binding on all pages worth of the ListView? This is regarding using ItemDataBound to check checkboxes.
i have dropdownlist of year which is coming dynamically.i have filled the dropdownlist using object datasource.on inserting in the listview control it is working fine. but when i click on edit button that dropdownlist value should be set which is coming from the database. e.g. if i have a row which contains Year=2006 and month="Jan"then on click on edit button these dropdown list should be fill up. i have written the code in ItemDataBound to set the value of the dropdownlilst.but when i use findcontrol its taking null so object reference error is coming.
I previously had a datalist bound to an objectDataSource. Within the ItemDataBound event, i could quite happily access the current bound row as follows:
[Code]....
where ASPNETDB was the database and tblJobs the tableadapter. I could then reference the tblJobs items as job.JobId and job.StartDate etc. Upon chainging the datalist to a listview, I can't seem to find any way of accessing the same data. I've tried ListViewItem and ListViewDataItem, is this the right method or am i missing something?
I am using the ItemDataBound event of a ListView to attach data for the different kind of templates I am using. Well, actually, want to use - I have not yet figured out how to know which template is coming in in the ItemDataBound event. I want to figure out if it is the edititemtemplate, insertitemplate, itemtemplate, etc. All these templates have different controls (edit and insert are the same though) and I need to set the controls contained in them.
I am using a listview to which I want to bind the MembershipUserCollection which you get from GetAllUsers(). I don't want to use reflection, I want to assign it in the ItemDataBound event of my listview. I've done this before, but with datatables. The code will be something like DataRow dr = (e.item.DataItem as DataRowView).Row. You can then access specific columns with
dr["ColumnNamehere"].ToString().
But how do you do this with MembershipUserCollection?
I am using ObjectList control in mobile application, How to Add dynamic data in itemdatabound event & HOw to find the Itemtype in ObjectList ItemDatabound(HOw do i get the reference of label inside the itemtemplate) .
I'm trying to get this accordian to get my data to display with a gridview in it, it renders fine, my datatable is being filled and it seem to bind but then there it no data and it skips my itemdatabound event in my code behind... Nothing loads!
if there is a bug with the databound event in vb.net or for this ajax control?
Which method is better (performance-wise) if I have DataBoundControl such as GridView, Repeater, and/or DataList and I use the following method to display data:
Eval("ColumnName") or handling the ItemDataBound or RowDataBound event like: void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { // my code to display data here }
I prefer the second one for code readability reason, but for performance reason, are they the same (or are they even the same thing)?
I am using ObjectList control in mobile application,How to Add dynamic data in itemdatabound event & HOw to find the Itemtype in ObjectList ItemDatabound(HOw do i get the reference of label inside the itemtemplate)
i have a repeater control and on ItemDataBound event i want fetch values in the repeater control and redirect to another page by passing those values as parameter. i have written the following code
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.
how many times itemDataBound event calls exactly, if my datatable have 2 records it is calling 4 times , first time in item index 0 , second time it is 1 and third time again it contains index 0 and forth time it is 1. so, could anyone please help me how the itemdatabound event actually works,
I wrote the following code in ItemDataBound Event of the DataList
[Code]....
I have got two questions:
1) If I have already given the data type to d as DropDownList, why do we need to typecast it again to e.Item.FindControl("dd1"). Is it because it will typecast this to the data type of the selected item in Drop Down list?
2) Why do we need to write this in Item Data Bound Event of the DataList?
I need to utilize about 30 different database values from within a repeater ItemDataBound Event and I am wondering if there is a better way to do it. I am currently exposing them by doing something like this 30 times:
[Code]....
Rather than making 30 declarations, is there a way I can make them all available as short variable names? The variable name could be the same as the field name.