Вопрос

I am not able to get preselected text in dropdown in edit template. Please see my code:

<EditItemTemplate>
   <asp:DropDownList ID="droplist" runat="server">
   </asp:DropDownList>
</EditItemTemplate>

c# code

protected void gvDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if ((e.Row.RowState & DataControlRowState.Edit) > 0)
            {
                DropDownList droplist = (DropDownList)e.Row.FindControl("droplist");
                droplist.DataSource = EquipmentBLL.getunitdrop();
                droplist.DataTextField = "UnitName";
                droplist.DataValueField = "UnitID";
                droplist.DataBind();
                droplist.Items.Insert(0, new ListItem(" Select Unit ", "0"));
                //droplist.Items.FindByText(unittypetext).Selected = true;
            }
        }
}

Can someone tell me what I should do to get preselected dropdown?

regards Hussain

Это было полезно?

Решение

Right now, you're populating the DropDownList with options from a datasource. However, you're not binding it's selected value to anything.

Whatever you are doing to bind the other fields in your Gridview, do that for the DropDownList's SelectedValue as well.

Without seeing the rest of your GridView markup, I'm thinking something like this should work:

<EditItemTemplate>
   <asp:DropDownList ID="droplist" runat="server" 
        SelectedValue='<%# Bind("UnitID") %>' >
   </asp:DropDownList>
</EditItemTemplate>

Where "UnitID" above is the name of the field from your GridView's datasource that you want to bind to the SelectedValue of the DropDownList.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top