1
J'ai un gridview qui a une liste déroulante dans la section d'édition, je veux lier la valeur sélectionnée de la base de données lors de l'édition. Dans la section designer, il n'y a pas d'attribut SelectedValue, cela donne une erreur d'exécution. Que faire de l'aide ?? Y a-t-il un moyen de gérer le code-behind?SelectedValue de DropDownlList
<asp:TemplateField HeaderText="Company">
<EditItemTemplate>
<asp:DropDownList ID="DDLCompany" runat="server" DataValueField="cname" DataTextField="cname" SelectedValue = '<%# Bind("cname") %>' >
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="CompanyLabel" runat="server" Text='<%# Bind("cname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList DDLCompany = (DropDownList)e.Row.FindControl("DDLCompany");
DropDownList DDLPrinter = (DropDownList)e.Row.FindControl("DDLPrinter");
if (DDLCompany != null)
{
DDLCompany.DataSource = userobj.FetchCompanyList();
DDLCompany.DataBind();
DDLCompany.SelectedValue = GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString();
}
if (DDLPrinter != null)
{
DDLPrinter.DataSource = userobj.FetchPrinterList();
DDLPrinter.DataBind();
DDLPrinter.SelectedValue = GridView1.DataKeys[e.Row.RowIndex].Values[0].ToString();
}
}
}
On dirait que votre code est derrière mis en place pour le faire ... – cjk
Non, il ne précise pas. Il sélectionne les premières données de DDL. Il ne lie pas la valeur réelle de la base de données – anarhikos