Pages

Jun 30, 2010

How to find the GridView RowID on SelectedIndexChanged Event of DropDownList inside ItemTemplate of GridView

Once there is a case where i need to bind a dropdownlist depending 
on the selection of other dropdownlist.
The above case is a usual one which we can do in a selectedIndexChanged Event. 
But here the twist is, 
I have both the dropdownlist inside a GridView as ItemTemplate.
So when i write a selectedIndexChanged how do i identify the actual row id of the GridView where the current DropDownList is present.
Here we go for the solution..
Write the below code to the selectedIndexChanged Event of the DropDownList



// First Identify the row in which the dropdown value has been changed
        GridViewRow gr = (GridViewRow)
            ((DataControlFieldCell)((DropDownList)sender).Parent).Parent;
 //find the control in the current row
        // selected dropdownlist
        DropDownList Projectddl = (DropDownList)gr.FindControl("ddlTest");
        // Dropdownlist to bind
        DropDownList Datumddl = 
               (DropDownList)(gr.FindControl("ddlSamp"));
        if (Projectddl.SelectedItem.Value == "SomeSelectedValue")
        {            
           // bind the second dropdownlist here
          Datumddl .DataSource = dTable;

          Datumddl .DataTextField  = member;
          Datumddl .DataValueField = member;
          Datumddl .DataBind();
        }

No comments: