質問

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