none
¿Como denegó la entrada de una fila en un DataGridView? Windows Forms C# RRS feed

  • Pregunta

  • Bueno, lo que trato de hace es guardar la fila en el grid cuando todos los campos se llenaron, si falta un campo por llenar, por ejemplo un TxtNombre, que este no guarde la fila  hasta que se llenen todos los campos. Agradecería mucho sus respuestas. Gracias!
    jueves, 9 de noviembre de 2017 5:38

Todas las respuestas

  • Buenas,

    Como llenas el datagridview? mediante un datatable?

    En caso de llenar el datagridview directamente desde el, puede usar RowValidating para parar la insercion mediante e.Cancel = true; dentro del evento.

    En caso de usar un datatable como DataSource del datagridview, puedes usar el evento "RowsAdded" para validar el contenido:

    private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
    {
        //System.Text.StringBuilder sb = new System.Text.StringBuilder();
        //sb.AppendLine("Lista de campos vacios:");
        if (dataGridView1.Rows[e.RowIndex].IsNewRow) return;
        bool bSacar = false;
        foreach (DataGridViewCell celda in dataGridView1.Rows[e.RowIndex].Cells)
        {
            if (celda is null || celda.Value is null || string.IsNullOrWhiteSpace(celda.Value.ToString()))
            {
                bSacar = true;
                //sb.AppendLine(dataGridView1.Columns[celda.ColumnIndex].Name);
            }
        }
        if (bSacar)
        {
            dataGridView1.Rows.RemoveAt(e.RowIndex);
            //MessageBox.Show(sb.ToString());
        }
    }

    En este caso, si quieres mostrar un mensaje con las celdas que habia vacias como razon de no insertar nada, descomenta las lineas que estan comentadas.

    En el caso de que tengas ambos, (entrada de datos desde el datagrid y desde un datatable), comentanos para que lo miremos mejor

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:


    jueves, 9 de noviembre de 2017 9:16