Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

dropDownList control not accessible inside dataGrid

0 views
Skip to first unread message

steven

unread,
May 12, 2008, 10:49:26 AM5/12/08
to
i've got a dropDownList that I'm trying to populate from my code
behind as follows:

uxVehicleColourEdit.DataSource = oDsLookups.Tables["COLOR"];

if the dropDown is placed inside a datagrid, i get compile time errors
stating the control doesn't exist in the current content:

<asp:DataGrid ID="tmp" runat="server">
<Columns>
<asp:TemplateColumn>
<EditItemTemplate>
<asp:DropDownList ID="uxVehicleColourEdit" runat="server"></
asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

if i move uxVehicleColourEdit outside the datagrid, i get no compile
errors.

any ideas what's going on?

tks

Eliyahu Goldin

unread,
May 12, 2008, 10:59:04 AM5/12/08
to
When you populate the grid, it will likely have more than one record. Each
record will include it's own ddl. That's why you can't access a single ddl
by id.

You need to handle ItemDataBound event for the grid. In the event use
e.Item.FindControl("uxVehicleColourEdit") to get a reference to the ddl.

--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net


"steven" <s_m...@hotmail.com> wrote in message
news:1f19e0a5-9074-4b26...@8g2000hse.googlegroups.com...

Stan

unread,
May 12, 2008, 11:46:25 AM5/12/08
to
On 12 May, 15:59, "Eliyahu Goldin"

<REMOVEALLCAPITALSeEgGoldD...@mMvVpPsS.org> wrote:
> When you populate the grid, it will likely have more than one record. Each
> record will include it's own ddl. That's why you can't access a single ddl
> by id.
>
> You need to handle ItemDataBound event for the grid. In the event use
> e.Item.FindControl("uxVehicleColourEdit") to get a reference to the ddl.
>
> --
> Eliyahu Goldin,
> Software Developer
> Microsoft MVP [ASP.NET]http://msmvps.com/blogs/egoldinhttp://usableasp.net
>
> "steven" <s_mu...@hotmail.com> wrote in message

>
> news:1f19e0a5-9074-4b26...@8g2000hse.googlegroups.com...
>
>
>
> > i've got a dropDownList that I'm trying to populate from my code
> > behind as follows:
>
> > uxVehicleColourEdit.DataSource = oDsLookups.Tables["COLOR"];
>
> > if the dropDown is placed inside a datagrid, i get compile time errors
> > stating the control doesn't exist in the current content:
>
> > <asp:DataGrid ID="tmp" runat="server">
> > <Columns>
> > <asp:TemplateColumn>
> > <EditItemTemplate>
> > <asp:DropDownList ID="uxVehicleColourEdit" runat="server"></
> > asp:DropDownList>
> > </EditItemTemplate>
> > </asp:TemplateColumn>
> > </Columns>
> > </asp:DataGrid>
>
> > if i move uxVehicleColourEdit outside the datagrid, i get no compile
> > errors.
>
> > any ideas what's going on?
>
> > tks- Hide quoted text -
>
> - Show quoted text -

Not quite Eliyahu. The dropdownlist is in the EditItem template (as it
should be) so will only occur in the row that is placed in edit mode
when an edit command is issued. The event to use for the assignment is
EditCommand.

BTW steven is there any reason you are using DataGrid rather than
GridView? Or are you constrained to use ASP.NET v 1?

ASP.NET v 2 would make the task easier because you could bind the ddl
to an appropriate DataSource object using the DatasourceID property.
By placing the both the ddl and the datasource control inside the
EditItemtemplate it would load itself without any code.

0 new messages