2009-05-19 39 views
5

Estoy usando el nuevo control Microsoft APS Component de AJAX en mi aplicación web, y tengo problemas para averiguar cómo configurar programáticamente el elemento de la lista seleccionada. Por ejemplo, tengo un formulario para aceptar direcciones y un ComboBox para aceptar un nombre de ciudad. Después de que el usuario entre y guarda y dirección, me gustaría restablecer el formulario, incluidos los ComboBoxes.Combobox de ASP.NET AJAX: no se puede modificar el elemento seleccionado de forma programática

con un control regular de ASP.NET DropDownList I puede restablecer el elemento seleccionado, como a continuación:

City.SelectedIndex = -1; 

El control ComboBox ASP.NET AJAX acepta esta línea de código; pero cuando la página publica de nuevo, el valor seleccionado previamente sigue seleccionado. La ayuda sería apreciada

Actualizada: He intentado lo siguiente en vano ...

City.ClearSelection(); 

Respuesta

3

Una solución para esto es utilizar después de los 2 comandos Antes de cargar la página por segunda vez o lo hace visible en el panel de actualización

  Combobox1.ClearSelection() 
      Combobox1.Dispose() 

Esto borrará Combobox Valor.

Espero que esto ayude. Me tomó un tiempo encontrarlo.

0

Probar:

ComboBox.Text = ""; 
ComboBox.ClearSelection(); 
+0

Lo intenté y no tuve suerte. El valor seleccionado previamente todavía está allí. La única solución es volver a vincular la lista, pero estoy tratando de evitar otro golpe de la base de datos. – jwalkerjr

+0

¿Hay una colección de elementos con un método claro? ComboBox.Items.Clear()? –

+0

Sí, y eso borra los elementos de la lista, PERO el valor seleccionado SIGUE aparece en el cuadro. – jwalkerjr

0

¿Se refiere a la CascadingDropDown? Si es así, establezca SelectedValue de CascadingDropDown en nulo.

CascadingDropDown1.SelectedValue = null; 
+1

Tim, en realidad estoy hablando del nuevo control ComboBox de MS Ajax Control Toolkit. Desafortunadamente, establecer la propiedad .SelectedValue del control como nulo aún no funciona. Convencido en este punto, esto es un error en el control. Wish MS lo confirmaría, sin embargo. – jwalkerjr

1

Este es un problema abierto en CodePlex. Entonces, como es un error, no hay solución hasta que se emita un parche. Aquí está el issue en CodePlex.

1

es un trabajo cuando uso DropDownStyle = "desplegable" y este comando para borrar texto combobox1.SelectedItem.Text = ""

0

bien por lo que si desea establecer el índice se almacena en la oculta campo en el control que parece. Entonces, lo que estoy haciendo para aclararlo es esto.

foreach (Control control in cbFeatures.Controls) 
      { 
       if (control is HiddenField) 
        ((HiddenField)control).Value = "0"; 
      } 

Esto funciona muy bien para mí, donde el valor es el índice que desea establecer.

0

Reemplazar City.ClearSelection() con lo siguiente:

City.Items.Insert(0, ""); 
City.SelectedIndex = 0; 

Ahora esto pondrá una cadena vacía en la lista desplegable de la parte del control de la ciudad, así como establecer el texto en una cadena vacía. Para quitar la cadena vacía de la lista desplegable utilizar

City.Items.Remove(""); 

en el caso de la ciudad de Page_Load.

1

* Esto sigue siendo un error a partir del 2-18-2011 Versión 3.5.40412.2 del toolkit *

Por el bien de todos los buscadores de Google, ninguna de las correcciones que encontré para este problema funcionó (incluyendo las varias que implicaban iterar a través de la colección de controles para encontrar el control oculto, Dispose, etc.)

* Esto funciona para mí, no importa cuántas capas de profundidad he enterrado en el cuadro combinado otros controles/paneles, etc *

combobox.Items.Clear();

((TextBox) cmbMachineNum.FindControl ("TextBox")). Text = "";

+0

Muchas gracias, @Paul. Esto me estaba volviendo loco todo el día ... :) –

Cuestiones relacionadas