2011-06-23 37 views
7

Tengo un dropdownlist1 que tiene 6 elementos de colección, incluyendo Select One. Lo que quiero es que este ddl esté configurado en Selectedvalue = null. Pero lo que obtengo es mi ddl siempre seleccionando Select One como su valor inicial. Se seleccionaron mis propiedades ddl para Select One: falso. ¿Cómo establecer este ddl en el valor inicial seleccionado = nulo?C# cómo establecer el valor predeterminado dropDownList para selectedValue = null

<asp:DropDownList ID="DropDownList1" runat="server" Visible="False" Width="146px"> 
    <asp:ListItem>Ceiling Speaker</asp:ListItem> 
    <asp:ListItem>Remote Microphone</asp:ListItem> 
    <asp:ListItem>Digital Source Player</asp:ListItem> 
    <asp:ListItem>Remote paging Console</asp:ListItem> 
    <asp:ListItem>Modular Mixer</asp:ListItem> 
    <asp:ListItem>Select One</asp:ListItem> 
</asp:DropDownList> 


if (String.IsNullOrEmpty(txtSearchProductname.Text)) 
{ 
    if (DropDownList1.SelectedValue == null) 
    { 
     txtProductName.Text = ""; 
    } 
    else 
    { 
     SqlProductmaster.InsertParameters["ProductName"].DefaultValue = DropDownList1.SelectedValue.ToString(); 
    } 
} 
else 
{ 
    SqlProductmaster.InsertParameters["ProductName"].DefaultValue = txtProductName.Text; 
} 

Respuesta

3

Puede agregar un elemento de valor 'vacío':

<asp:DropDownList ID="DropDownList1" runat="server" Width="146px"> 
    <asp:ListItem Selected="True"></asp:ListItem> 
    <asp:ListItem>Ceiling Speaker</asp:ListItem> 
    <asp:ListItem>Remote Microphone</asp:ListItem> 
    <asp:ListItem>Digital Source Player</asp:ListItem> 
    <asp:ListItem>Remote paging Console</asp:ListItem> 
    <asp:ListItem>Modular Mixer</asp:ListItem> 
    <asp:ListItem>Select One</asp:ListItem> 
</asp:DropDownList> 

allí tendría que comprobar si hay

if (string.IsNullOrEmpty(DropDownList1.SelectedValue)) 
+0

Hice lo que dijo, pero cuando inserto algo en txtProductName, no se muestra en el navegador. –

+0

Por extraño que sea, mi problema con respecto a esta pregunta se está resolviendo solo reemplazando txtProductName.Text = ""; con SqlProductmaster.InsertParameters ["ProductName"]. DefaultValue = txtProductName.Text; Sin embargo, funciona como un encanto. –

2

SelectedValue de una lista desplegable nunca sería nulo. Podría ser una cadena vacía, pero nunca puede ser nulo ...

+0

Esta es la respuesta correcta. –

3
<asp:DropDownList ID="DropDownList1" AppendDataBoundItems="true" runat="server"> 
    <asp:ListItem Text="(Select a State)" Value="" /> 
    <asp:ListItem>Ceiling Speaker</asp:ListItem> 
    <asp:ListItem>Remote Microphone</asp:ListItem> 
    <asp:ListItem>Digital Source Player</asp:ListItem> 
    <asp:ListItem>Remote paging Console</asp:ListItem> 
    <asp:ListItem>Modular Mixer</asp:ListItem> 
    <asp:ListItem>Select One</asp:ListItem>  
</asp:DropDownList> 
+0

@Alex Todavía no se muestra. Verás, mi ddl de alguna manera afecta al cuadro de texto txtProductName. debería mostrar lo que escribo en txtProductName primero. Debo dejarlo en blanco, y selecciono el elemento ddl, luego el valor seleccionado se completará. O puedo dejar ambos vacíos, obteniendo el resultado que deseo. –

1

Sería mejor configurar los artículos de esta manera

<asp:ListItem Text="Select One" Value=""></asp:ListItem> 

También SelectedValue del desplegable es una propiedad de cadena así que es mejor comprobar la misma utilizando string.IsNullOrEmpty ya que no puede ser nulo, deje en blanco el valor en el que desea que se considere como nulo y repetir los mismos valores en la parte Text y Value para otros

0

Hera agregar un valor predeterminado en el lsit ...

<asp:DropDownList ID="DropDownList1" runat="server" Width="146px"> 
<asp:ListItem Selected="True">Select One</asp:ListItem> 
<asp:ListItem>Ceiling Speaker</asp:ListItem> 
<asp:ListItem>Remote Microphone</asp:ListItem> 
<asp:ListItem>Digital Source Player</asp:ListItem> 
<asp:ListItem>Remote paging Console</asp:ListItem> 
<asp:ListItem>Modular Mixer</asp:ListItem> 
<asp:ListItem>Select One</asp:ListItem> 

pero intentar algo como elemento seleted en lugar de SelectedValue por culpa u have'nt valores definidos en los elementos de la lista ..

if (string.IsNullOrEmpty(DropDownList1.SeletedItem)) 

Para cuadro de texto también

txtProductName = DropDownList1.SeletedItem).ToString(); 
+0

txtProductName cuando el relleno no funciona. –

-1

Uso CancelSelectOnNullParameter = False en el SqlDataSource

0

Hacer el selecto value = "" que está vacío y pasar esto a su procedimiento almacenado como esto

dt = ta.GetData(
      String.IsNullOrEmpty(DropDownList1.SelectedValue)? null : DropDownList1.SelectedValue, 
      String.IsNullOrEmpty(DropDownList2.SelectedValue) ? null : DropDownList2.SelectedValue, 
      String.IsNullOrEmpty(DropDownList3.SelectedValue) ? null : DropDownList3.SelectedValue, null); 
Cuestiones relacionadas