c# - valor - lista desplegable excel autocompletar
Agregar un valor predeterminado en la lista desplegable después de enlazar con la base de datos (5)
Después del enlace de datos, haga esto:
ddlColor.Items.Insert(0, new ListItem("Select","NA")); //updated code
O sigue la segunda sugerencia de Brian si quieres hacerlo en formato.
Probablemente debería agregar un control RequiredFieldValidator y establecer su InitialValue en "NA".
<asp:RequiredFieldValidator .. ControlToValidate="ddlColor" InitialValue="NA" />
Vinculé mi ddl a mi base de datos como se muestra a continuación, pero ¿cómo puedo agregar un texto predeterminado sobre los valores vinculados para que aparezca como:
Select Color ---> default text
Red ---> database value
Blue ---> database value
Green ---> database value
Código:
DropDownList ddlSize = (DropDownList)FormView_Product.Row.Cells[0].FindControl("ddlSize");
CommerceEntities db = new CommerceEntities();
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
¡Gracias!
La solución provista por Justin debería funcionar. Para asegurarse de que el uso de la propiedad SelectedIndex
también ayudará.
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select Color", "");
ddlColor.SelectedIndex = 0;
Puede agregarlo mediante programación o en el marcado, pero si lo agrega mediante programación, en lugar de Add
el elemento, debe Insert
como posición cero para que sea el primer elemento:
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select Color", "");
Se espera que el elemento predeterminado sea el primer elemento de la lista. Si simplemente lo Add
, estará en la parte inferior y no se seleccionará de forma predeterminada.
Puedes hacerlo programáticamente:
ddlColor.DataSource = from p in db.ProductTypes
where p.ProductID == pID
orderby p.Color
select new { p.Color };
ddlColor.DataTextField = "Color";
ddlColor.DataBind();
ddlColor.Items.Insert(0, new ListItem("Select", "NA"));
O agregarlo en el marcado como:
<asp:DropDownList .. AppendDataBoundItems="true">
<Items>
<asp:ListItem Text="Select" Value="" />
</Items>
</asp:DropDownList>
diseño
<asp:DropDownList ID="ddlArea" DataSourceID="ldsArea" runat="server" ondatabound="ddlArea_DataBound" />
código detrás
protected void ddlArea_DataBound(object sender, EventArgs e)
{
ddlArea.Items.Insert(0, new ListItem("--Select--", "0"));
}