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