dropDownList control not accessible inside dataGrid


S

steven

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
 
Ad

Advertisements

E

Eliyahu Goldin

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
 
Ad

Advertisements

S

Stan

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




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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top