Estoy usando un Sistema.Windows.Los formularios.Combobox
enlazado a la tabla de categorías como criterios de búsqueda. Necesito tener un valor «Todos» o cadena vacía que será seleccionado cuando el usuario no quiere utilizar este criterio. Desde combo es obligada, cada vez que se hace clic en él, el valor añadido por combo1.Texto = «Todos» se borra. Obviamente, yo no puedo agregar que «Todos» los de la categoría a la base de datos. ¿Cuál es la mejor manera de lograr esto?

InformationsquelleAutor Dan | 2009-09-20

6 Comentarios

  1. 1

    Agregar manualmente la inscripción a la envolvente del conjunto de datos después de que el resto de los valores se han cargado, o desenlazar el combo y en lugar de iterar a través de los datos a rellenar. Es sólo una búsqueda combo, así que realmente no necesita todos los beneficios de la unión.

    • Traté de llenar manualmente, utilizando ComboBox1.Elementos.Insert(0,»Todos»), pero luego estoy recibiendo null SelectedValue.
    • Por eso me dijo que agregar que para el conjunto de datos en lugar de los combobox.
  2. 5
    1. Si usted no desea agregar el elemento de «Todos» en el origen de datos, puede hacer lo siguiente:

    Fragmento De Código

    comboBox1.Text = "All";

    Establece el texto que se muestra en el cuadro combinado para el valor asignado, pero sin cambiar los elementos en el comboBox y el origen de datos enlazados.

    1. Puede añadir «Todos» para el origen de datos así. Pero debe hacerlo de esta manera:

    Fragmento De Código

    private void button1_Click(object sender, EventArgs e)
    
    {
    
    DataRow dataRow = dataTable.NewRow();
    
    dataRow["ItemId"] = "All";
    
    dataTable.Rows.InsertAt(dataRow, 0);
    
    comboBox1.SelectedIndex = 0;
    
    }

    La manera más fácil sería para insertar una fila en tu ds.Tablas[0] que es

      ds = StockDAL.BindItemId();
    
      DataRow dataRow = ds.Tables[0].NewRow();
    
      dataRow["ItemId"] = "All";
    
      ds.Tables[0].Rows.InsertAt(dataRow, 0);
    
      comboBox1.DataSource = ds.Tables[0];
      comboBox1.DisplayMember = "ItemId";
      comboBox1.ValueMember = "ItemId";
      comboBox1.selectedIndex=0;

    espero que esto resuelva ur problema..

  3. 1

    Habría que añadir otro elemento:

    ComboBox1.Items.Insert(0,"All");
    • Estoy recibiendo un error: colección de Elementos no puede ser modificado cuando el origen de datos se establece la propiedad.
    • tenía miedo de que iba a pasar.. si establece sus artículos directamente a partir de un conjunto de datos para el origen de datos a su bloqueo de los Elementos de la propiedad.. Una posible solución sería iterar a través de su colección de artículos en su conjunto de datos y añadir a ellos a través de los Elementos.Insertar
    • Traté de llenar manualmente, utilizando ComboBox1.Elementos.Insert(0,»Todos»), pero luego de recibir SelectedValue como Nada. Me puede echar Elemento objeto original, pero esto es un montón de código para algo así de simple…
  4. 0
    1. Si está utilizando sql server, a continuación, puede añadir un valor extra para el comando seleccionar la opción Todos
    2. O usted puede agregar Todas las opciones, mediante comboBox1.Elementos.Insert(0,»Todos») para agregar nuevo elemento como el índice cero. después de la unión del control

    La esperanza de que le ayudará.

    • En la segunda opción, esto significa que no puede usar el diseñador para establecer las opciones de enlace? He puesto el ComboBox1.Elementos.Insert(0,»Todos») en la Carga del Formulario, pero estoy recibiendo la «colección de Elementos no puede ser modificado cuando el origen de datos se establece la propiedad de error».
    • Creo que se debe utilizar la primera opción, cuando se selecciona el elemento a continuación, puede añadir la opción todos allí, la Adición de nuevos elementos está disponible en la web de control dropdownlist.
  5. 0

    Yo siempre ‘manualmente’ agregar un elemento a la fuente de datos antes de que el enlace de datos. Esto evita tener ‘artificial’ de datos en el origen de datos de la consulta, por lo que si la consulta se usa para algo que no sea un desplegable, usted sólo obtener datos reales.

  6. 0

    usted puede probar este

    ComboBox1.Items.Insert(0,"All");

    mientras que la inserción de la tabla que acaba de comprobar el índice seleccionado del ComboBox1
    es decir,

    if(ComboBox1.SelectedIndex>0)
    {
    //do the insert code here
    }
    else
    {
    //dont do anything
    }

    esto va a funcionar bien…

Dejar respuesta

Please enter your comment!
Please enter your name here