unable to cast type System.Web.UI.Control to System.Web.UI.WebControls.Label and object set to null
am 23.04.2008 17:51:44 von Andy B
I have the following listView control on a page:
ItemPlaceholderID="PlaceHolder1">
The code behind for the page that it is on is below. I am trying to get the
text for the key and value pair into the labels above. I get 2 different
errors depending on what I use in the code behind. There will be comments
where required.
namespace Contracts {
public partial class _Default : System.Web.UI.Page {
//create a contract for use in the page.
Contract StockContract = new Contract();
protected void Page_Load(object sender, EventArgs e) {
//create a ContractDictionary and assign it to the Dictionary property.
StockContract.Dictionary = new ContractDictionary();
//add an entry to the dictionary
StockContract.Dictionary.Add("Word", "Just testing here...");
//dataBind the listview control where the entries from the dictionary will
be seen to the Dictionary
ListView1.DataSource = StockContract.Dictionary;
ListView1.DataBind();
//these next 2 lines cause a 'unable to cast type System.Web.UI.Control to
System.Web.UI.WebControls.Label error.
//Label WordLabel = (Label)ListView1.Controls[0];
//Label DefinitionLabel = (Label)ListView1.Controls[1];
//these next 2 lines cause an 'Object set to null reference' error.
//Label WordLabel = (Label)ListView1.FindControl("Label1");
//Label DefinitionLabel = (Label)ListView1.FindControl("Label2");
//cycle through the key/value pair and give the values to the Labels inside
the ListView1.
foreach(KeyValuePair values in StockContract.Dictionary) {
WordLabel.Text = values.Key;
DefinitionLabel.Text = values.Value;
}
}
}
}
Any ideas how to fix this?
RE: unable to cast type System.Web.UI.Control to System.Web.UI.WebCont
am 23.04.2008 18:47:00 von brucebarker
you labels are not direct children of the listview. they are children of the
template that is a child of the listview. you need to do a recursive search
for the labels.
-- bruce (sqlwork.com)
"Andy B" wrote:
> I have the following listView control on a page:
>
>
> ItemPlaceholderID="PlaceHolder1">
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> The code behind for the page that it is on is below. I am trying to get the
> text for the key and value pair into the labels above. I get 2 different
> errors depending on what I use in the code behind. There will be comments
> where required.
>
> namespace Contracts {
>
> public partial class _Default : System.Web.UI.Page {
>
> //create a contract for use in the page.
>
> Contract StockContract = new Contract();
>
> protected void Page_Load(object sender, EventArgs e) {
>
> //create a ContractDictionary and assign it to the Dictionary property.
>
> StockContract.Dictionary = new ContractDictionary();
>
>
>
> //add an entry to the dictionary
>
> StockContract.Dictionary.Add("Word", "Just testing here...");
>
>
>
> //dataBind the listview control where the entries from the dictionary will
> be seen to the Dictionary
>
> ListView1.DataSource = StockContract.Dictionary;
>
> ListView1.DataBind();
>
> //these next 2 lines cause a 'unable to cast type System.Web.UI.Control to
> System.Web.UI.WebControls.Label error.
>
> //Label WordLabel = (Label)ListView1.Controls[0];
>
> //Label DefinitionLabel = (Label)ListView1.Controls[1];
>
>
>
> //these next 2 lines cause an 'Object set to null reference' error.
>
> //Label WordLabel = (Label)ListView1.FindControl("Label1");
>
> //Label DefinitionLabel = (Label)ListView1.FindControl("Label2");
>
>
>
> //cycle through the key/value pair and give the values to the Labels inside
> the ListView1.
>
> foreach(KeyValuePair values in StockContract.Dictionary) {
>
> WordLabel.Text = values.Key;
>
> DefinitionLabel.Text = values.Value;
>
> }
>
> }
>
> }
>
> }
>
>
>
> Any ideas how to fix this?
>
>
>
>
>
>
>
Re: unable to cast type System.Web.UI.Control to System.Web.UI.WebCont
am 23.04.2008 18:56:59 von Andy B
How do you do this?
"bruce barker" wrote in message
news:EFC3C4FB-F431-43BB-A0EA-33C6F2688A99@microsoft.com...
> you labels are not direct children of the listview. they are children of
> the
> template that is a child of the listview. you need to do a recursive
> search
> for the labels.
>
> -- bruce (sqlwork.com)
>
>
> "Andy B" wrote:
>
>> I have the following listView control on a page:
>>
>>
>> ItemPlaceholderID="PlaceHolder1">
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> The code behind for the page that it is on is below. I am trying to get
>> the
>> text for the key and value pair into the labels above. I get 2 different
>> errors depending on what I use in the code behind. There will be comments
>> where required.
>>
>> namespace Contracts {
>>
>> public partial class _Default : System.Web.UI.Page {
>>
>> //create a contract for use in the page.
>>
>> Contract StockContract = new Contract();
>>
>> protected void Page_Load(object sender, EventArgs e) {
>>
>> //create a ContractDictionary and assign it to the Dictionary property.
>>
>> StockContract.Dictionary = new ContractDictionary();
>>
>>
>>
>> //add an entry to the dictionary
>>
>> StockContract.Dictionary.Add("Word", "Just testing here...");
>>
>>
>>
>> //dataBind the listview control where the entries from the dictionary
>> will
>> be seen to the Dictionary
>>
>> ListView1.DataSource = StockContract.Dictionary;
>>
>> ListView1.DataBind();
>>
>> //these next 2 lines cause a 'unable to cast type System.Web.UI.Control
>> to
>> System.Web.UI.WebControls.Label error.
>>
>> //Label WordLabel = (Label)ListView1.Controls[0];
>>
>> //Label DefinitionLabel = (Label)ListView1.Controls[1];
>>
>>
>>
>> //these next 2 lines cause an 'Object set to null reference' error.
>>
>> //Label WordLabel = (Label)ListView1.FindControl("Label1");
>>
>> //Label DefinitionLabel = (Label)ListView1.FindControl("Label2");
>>
>>
>>
>> //cycle through the key/value pair and give the values to the Labels
>> inside
>> the ListView1.
>>
>> foreach(KeyValuePair values in StockContract.Dictionary)
>> {
>>
>> WordLabel.Text = values.Key;
>>
>> DefinitionLabel.Text = values.Value;
>>
>> }
>>
>> }
>>
>> }
>>
>> }
>>
>>
>>
>> Any ideas how to fix this?
>>
>>
>>
>>
>>
>>
>>