¿Cómo configuro el valor inicial de una lista desplegable de datos en ASP.NET?Lista desplegable de datos - valor inicial
Por ejemplo, quiero los valores, pero el primer valor para mostrar debe ser - Seleccione Uno ---, con un valor nulo.
¿Cómo configuro el valor inicial de una lista desplegable de datos en ASP.NET?Lista desplegable de datos - valor inicial
Por ejemplo, quiero los valores, pero el primer valor para mostrar debe ser - Seleccione Uno ---, con un valor nulo.
Creo que lo que quiere hacer es lo siguiente:
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="--Select One--" Value="" />
</asp:DropDownList>
Asegúrese de que los 'AppendDataBoundItems' está en cierto o de lo contrario van a borrar la '- Seleccione One-- 'list item cuando enlace sus datos.
Si usted tiene la propiedad 'AutoPostBack' de la lista desplegable para establecer cierto tendrá que configurar también la propiedad 'CausesValidation' a cierto continuación, utilizar un 'RequiredFieldValidator' para asegurarse de que la '- La opción Seleccionar uno-- 'no causa una devolución de datos.
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1"></asp:RequiredFieldValidator>
Agregue un elemento y establezca su propiedad "Seleccionado" en verdadero; probablemente también desee establecer la propiedad "appenddatabounditems" en true para que su valor inicial no se elimine cuando se enlaza con datos.
Si está hablando de establecer un valor inicial que está en sus elementos de datos, enganche en su evento ondatabound y establezca qué índice desea seleccionar = verdadero, querrá envolverlo en "if not page.isPostBack then". ...", aunque
Protected Sub DepartmentDropDownList_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles DepartmentDropDownList.DataBound
If Not Page.IsPostBack Then
DepartmentDropDownList.SelectedValue = "somevalue"
End If
End Sub
Lo que hago es establecer la propiedad del texto de la lista desplegable DESPUÉS de que lo enlace. Algo como esto:
protected void LoadPersonComboBox()
{
var p = new PeopleBLL();
rcmbboxEditPerson.DataSource = p.GetPeople();
rcmbboxEditPerson.DataBind();
rcmbboxEditPerson.Text = "Please select an existing person to edit...";
}
Esto hace visible el valor inicial de esta lista desplegable aparece, pero en realidad no sea parte de la lista desplegable, ni es un seleccionable.
Sé que esto ya tiene una respuesta elegida, pero quería lanzar mi granito de arena. Tengo una lista de enlace de datos desplegable:
<asp:DropDownList
id="country"
runat="server"
CssClass="selectOne"
DataSourceID="country_code"
DataTextField="Name"
DataValueField="CountryCode_PK"
></asp:DropDownList>
<asp:SqlDataSource
id="country_code"
runat="server"
ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
SelectCommand="SELECT CountryCode_PK, CountryCode_PK + ' - ' + Name AS N'Name' FROM TBL_Country ORDER BY CountryCode_PK"
></asp:SqlDataSource>
En el código subyacente, tengo este - (que selecciona Estados Unidos por defecto):
if (this.IsPostBack)
{
//handle posted data
}
else
{
country.SelectedValue = "US";
}
La página inicialmente cargas basado en el valor de 'Estados Unidos' en lugar de tratar de preocuparse por un Índice seleccionado (¿qué pasa si otro elemento se agrega a la tabla de datos? No quiero tener que volver a codificar)
Sé que esto es antiguo, pero una combinación de estas ideas conduce a una solución muy elegante:
Guarde todas las configuraciones de propiedades predeterminadas para DropDownList (AppendDataBoundItems = false, Elementos vacíos). A continuación, controlar el evento DataBound así:
protected void dropdown_DataBound(object sender, EventArgs e)
{
DropDownList list = sender as DropDownList;
if (list != null)
list.Items.Insert(0, "--Select One--");
}
La guinda del pastel es que éste manejador puede ser compartida por cualquier número de objetos DropDownList, o incluso poner en una biblioteca de utilidades de uso general para todos sus proyectos.
¿Dónde llamar a este método? –
@iQue puede establecer esto como el evento 'OnDataBound' para su DropDownList. Creo que esto es mucho mejor que la respuesta aceptada, ya que no hay ningún problema cuando el DataSource cambia y re-DataBind; con la respuesta aceptada, re-DataBinding simplemente agregará elementos a la lista existente (que _ podría ser lo que usted desea, pero parece más probable que eso no sea lo que desea). –
para seleccionar un valor en el menú desplegable utilizar el índice de la siguiente manera:
si tenemos la
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true"></asp:DropDownList>
se debería utilizar:
DropDownList1.Items[DropDownList1.SelectedIndex].Value
este devolvería el valor para el índice seleccionado.
dropdownlist.Items.Insert(0, new Listitem("--Select One--", "0");
Hola amigo, en este caso se puede utilizar el
AppendDataBound="true"
y después de esto usar el elemento de la lista. por ej .:
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="--Select One--" Value="" />
</asp:DropDownList>
pero el problema de esto es después de los datos seleccionados por segunda vez se anexan a los datos antiguos.
Gracias, esto es exactamente lo que estaba buscando. :-) +1 –
Esta muy útil. – Denis
Simple, rápido y fácil. Buena respuesta. –