Showing posts with label intem. Show all posts
Showing posts with label intem. Show all posts

Thursday, March 22, 2012

The first intem in a DropDownList is vanishing!

The first intem in a DropDownList is vanishing!

My code to load a DropDownList is shown below. Yet when I load the
page after a postback there is no zeroth item present.

lstManager.Items.Clear();

lstManager.DataSource = _dsData.Tables["manager"].DefaultView;
lstManager.DataValueField = "ManagerID";
lstManager.DataTextField = "Name";
lstManager.DataBind();

lstManager.Items.Insert(0, new ListItem("none", "0"));

There's nothing special about the control definition:

<asp:DropDownList ID="lstManager" runat="server" Height="20px"
Width="250px" />

What's going on here?

This was the old code I replaced. Why does the old code (below) work
and why is my new code (above) broke?

lstManager.Items.Clear();

ListItem li = new ListItem("none","0");
lstManager.Items.Add(li);

foreach (DataRow drManager in _dsData.Tables["manager"].Rows)
{
ListItem liManager = new ListItem((string)drManager["Name"],
((int)drManager["ManagerID"]).ToString());
lstManager.Items.Add(liManager);
}I had this one a while back; turns out I was using simple properties
on a Master Page that required a DataBind() call to bind them. When
it was called, it was also rebinding the content page, which loses the
manually added items.

I recall this issue also happened with an ASCX file on the page, or if
you call a generic DataBind() any time after the addition of
ListItems, etc.

Dunc
http://www.fluidfoundation.com
On 1 Jun, 15:24, mark4asp <mark4...@.gmail.comwrote:

Quote:

Originally Posted by

The first intem in a DropDownList is vanishing!
>
My code to load a DropDownList is shown below. Yet when I load the
page after a postback there is no zeroth item present.
>
lstManager.Items.Clear();
>
lstManager.DataSource = _dsData.Tables["manager"].DefaultView;
lstManager.DataValueField = "ManagerID";
lstManager.DataTextField = "Name";
lstManager.DataBind();
>
lstManager.Items.Insert(0, new ListItem("none", "0"));
>
There's nothing special about the control definition:
>
<asp:DropDownList ID="lstManager" runat="server" Height="20px"
Width="250px" />
>
What's going on here?
>
This was the old code I replaced. Why does the old code (below) work
and why is my new code (above) broke?
>
lstManager.Items.Clear();
>
ListItem li = new ListItem("none","0");
lstManager.Items.Add(li);
>
foreach (DataRow drManager in _dsData.Tables["manager"].Rows)
{
ListItem liManager = new ListItem((string)drManager["Name"],
((int)drManager["ManagerID"]).ToString());
lstManager.Items.Add(liManager);
}


On 1 Jun, 16:30, Dunc <duncan.we...@.gmail.comwrote:

Quote:

Originally Posted by

I had this one a while back; turns out I was using simple properties
on a Master Page that required a DataBind() call to bind them. When
it was called, it was also rebinding the content page, which loses the
manually added items.
>
I recall this issue also happened with an ASCX file on the page, or if
you call a generic DataBind() any time after the addition of
ListItems, etc.
>
Dunchttp://www.fluidfoundation.com
>
On 1 Jun, 15:24, mark4asp <mark4...@.gmail.comwrote:
>
>
>

Quote:

Originally Posted by

The first intem in a DropDownList is vanishing!


>

Quote:

Originally Posted by

My code to load a DropDownList is shown below. Yet when I load the
page after a postback there is no zeroth item present.


>

Quote:

Originally Posted by

lstManager.Items.Clear();


>

Quote:

Originally Posted by

lstManager.DataSource = _dsData.Tables["manager"].DefaultView;
lstManager.DataValueField = "ManagerID";
lstManager.DataTextField = "Name";
lstManager.DataBind();


>

Quote:

Originally Posted by

lstManager.Items.Insert(0, new ListItem("none", "0"));


>

Quote:

Originally Posted by

There's nothing special about the control definition:


>

Quote:

Originally Posted by

<asp:DropDownList ID="lstManager" runat="server" Height="20px"
Width="250px" />


>

Quote:

Originally Posted by

What's going on here?


>

Quote:

Originally Posted by

This was the old code I replaced. Why does the old code (below) work
and why is my new code (above) broke?


>

Quote:

Originally Posted by

lstManager.Items.Clear();


>

Quote:

Originally Posted by

ListItem li = new ListItem("none","0");
lstManager.Items.Add(li);


>

Quote:

Originally Posted by

foreach (DataRow drManager in _dsData.Tables["manager"].Rows)
{
ListItem liManager = new ListItem((string)drManager["Name"],
((int)drManager["ManagerID"]).ToString());
lstManager.Items.Add(liManager);
}- Hide quoted text -


>
- Show quoted text -


Thanks Dunc, for sharing that with me - that scenario you described
sounds very like mine.

The first intem in a DropDownList is vanishing!

The first intem in a DropDownList is vanishing!
My code to load a DropDownList is shown below. Yet when I load the
page after a postback there is no zeroth item present.
lstManager.Items.Clear();
lstManager.DataSource = _dsData.Tables["manager"].DefaultView;
lstManager.DataValueField = "ManagerID";
lstManager.DataTextField = "Name";
lstManager.DataBind();
lstManager.Items.Insert(0, new ListItem("none", "0"));
There's nothing special about the control definition:
<asp:DropDownList ID="lstManager" runat="server" Height="20px"
Width="250px" />
What's going on here?
This was the old code I replaced. Why does the old code (below) work
and why is my new code (above) broke?
lstManager.Items.Clear();
ListItem li = new ListItem("none","0");
lstManager.Items.Add(li);
foreach (DataRow drManager in _dsData.Tables["manager"].Rows)
{
ListItem liManager = new ListItem((string)drManager["Name"],
((int)drManager["ManagerID"]).ToString());
lstManager.Items.Add(liManager);
}I had this one a while back; turns out I was using simple properties
on a Master Page that required a DataBind() call to bind them. When
it was called, it was also rebinding the content page, which loses the
manually added items.
I recall this issue also happened with an ASCX file on the page, or if
you call a generic DataBind() any time after the addition of
ListItems, etc.
Dunc
http://www.fluidfoundation.com
On 1 Jun, 15:24, mark4asp <mark4...@.gmail.com> wrote:
> The first intem in a DropDownList is vanishing!
> My code to load a DropDownList is shown below. Yet when I load the
> page after a postback there is no zeroth item present.
> lstManager.Items.Clear();
> lstManager.DataSource = _dsData.Tables["manager"].DefaultView;
> lstManager.DataValueField = "ManagerID";
> lstManager.DataTextField = "Name";
> lstManager.DataBind();
> lstManager.Items.Insert(0, new ListItem("none", "0"));
> There's nothing special about the control definition:
> <asp:DropDownList ID="lstManager" runat="server" Height="20px"
> Width="250px" />
> What's going on here?
> This was the old code I replaced. Why does the old code (below) work
> and why is my new code (above) broke?
> lstManager.Items.Clear();
> ListItem li = new ListItem("none","0");
> lstManager.Items.Add(li);
> foreach (DataRow drManager in _dsData.Tables["manager"].Rows)
> {
> ListItem liManager = new ListItem((string)drManager["Name"],
> ((int)drManager["ManagerID"]).ToString());
> lstManager.Items.Add(liManager);
> }
On 1 Jun, 16:30, Dunc <duncan.we...@.gmail.com> wrote:
> I had this one a while back; turns out I was using simple properties
> on a Master Page that required a DataBind() call to bind them. When
> it was called, it was also rebinding the content page, which loses the
> manually added items.
> I recall this issue also happened with an ASCX file on the page, or if
> you call a generic DataBind() any time after the addition of
> ListItems, etc.
> Dunchttp://www.fluidfoundation.com
> On 1 Jun, 15:24, mark4asp <mark4...@.gmail.com> wrote:
>
>
>
>
>
>
>
>
>
>
>
>
>
> - Show quoted text -
Thanks Dunc, for sharing that with me - that scenario you described
sounds very like mine.