dropDownList control not accessible inside dataGrid

  • Thread starter Thread starter steven
  • Start date Start date
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
 
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
 
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.
 
Back
Top