set dropdownlist selectedindex in datagrid

Discussion in 'ASP .Net Datagrid Control' started by pleaseexplaintome@yahoo.com, Feb 25, 2007.

  1. Guest

    Hi all,

    I have a datagrid with a dropdownlist and would like to have the
    dropdownlist display a database value correctly while the grid is in
    edit mode.

    I have a templatecolumn as follows:

    <asp:TemplateColumn HeaderText="New Route">
    <HeaderStyle Width="0.5in"></HeaderStyle>
    <ItemTemplate>
    <asp:DropDownList id="DropDownList3" runat="server"
    AutoPostBack="True" OnSelectedIndexChanged="ddlselect">
    <asp:ListItem Value="A">A</asp:ListItem>
    <asp:ListItem Value="B">B</asp:ListItem>
    <asp:ListItem Value="C">C</asp:ListItem>
    <asp:ListItem Value="D">D</asp:ListItem>
    </asp:DropDownList>
    </ItemTemplate>

    with an edit column as:
    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update"
    HeaderText="Edit" CancelText="Cancel" EditText="Edit"></
    asp:EditCommandColumn>

    I would like to set the dropdownlist to the value found in the
    database. my code behind uses ItemDataBound as follows:

    public void myDataGrid_ItemDataBound(object sender,
    System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    DropDownList dd;
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
    ListItemType.AlternatingItem)
    {
    dd = (DropDownList)e.Item.Cells[7].FindControl("DropDownList3");
    dd.SelectedIndex =
    dd.Items.IndexOf(dd.Items.FindByText(e.Item.Cells[3].Text));
    }
    }

    upon loading the dropdownlist has the values as in the database.
    However, when I press edit the selected index becomes 0. I cannot
    figure how to set the value correctly.

    my edit code looks like:
    public void myDataGrid_EditCommand(object source,
    System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DropDownList dd;
    dd = (DropDownList)e.Item.Cells[7].FindControl("DropDownList3");
    dd.SelectedIndex =
    dd.Items.IndexOf(dd.Items.FindByText(e.Item.Cells[3].Text));
    <--- dd.SelectedIndex looks fine here --->
    ....
    }

    dd.SelectedIndex looks ok in debug mode, but something changes it
    before the dropdownlist is displayed. the values in the dropdownlists
    not being edited are ok, it's only the one being edited that shows the
    wrong selectedindex.

    any help would be appreciated. thanks.
     
    , Feb 25, 2007
    #1
    1. Advertising

  2. Riki Guest

    wrote:
    > Hi all,
    >
    > I have a datagrid with a dropdownlist and would like to have the
    > dropdownlist display a database value correctly while the grid is in
    > edit mode.
    >
    > I have a templatecolumn as follows:
    >
    > <asp:TemplateColumn HeaderText="New Route">
    > <HeaderStyle Width="0.5in"></HeaderStyle>
    > <ItemTemplate>
    > <asp:DropDownList id="DropDownList3" runat="server"
    > AutoPostBack="True" OnSelectedIndexChanged="ddlselect">
    > <asp:ListItem Value="A">A</asp:ListItem>
    > <asp:ListItem Value="B">B</asp:ListItem>
    > <asp:ListItem Value="C">C</asp:ListItem>
    > <asp:ListItem Value="D">D</asp:ListItem>
    > </asp:DropDownList>
    > </ItemTemplate>


    There is a much easier way (at least in ASP.NET 2.0)

    Set the property SelectedValue on the DrowDownlist
    declaratively like this:

    SelectedValue='<%# Bind("myDBField") %>'

    This will take care of everything: showing the data and
    updating the data after postback.

    --

    Riki
     
    Riki, Feb 26, 2007
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. VB Programmer
    Replies:
    1
    Views:
    18,627
    Cliff Harris
    Apr 7, 2004
  2. keithb
    Replies:
    1
    Views:
    12,134
    shauns1
    Nov 1, 2006
  3. Replies:
    1
    Views:
    883
  4. S_K
    Replies:
    5
    Views:
    797
    Eliyahu Goldin
    Nov 14, 2007
  5. set dropdownlist selectedindex in datagrid

    , Feb 25, 2007, in forum: ASP .Net Web Controls
    Replies:
    1
    Views:
    162
Loading...

Share This Page