2011-04-12 21 views
16

¿Cómo puedo agregar una casilla de verificación a una tabla de datos y vincularla a una cuadrícula de datos?¿Cómo agregar un control de casilla de verificación a una tabla de datos?

DataTable ColumnList = new DataTable(); 
ColumnList.Columns.Add("Column Fields"); 

int j = 1, i = 0; 
CheckBox colCheckbox = new CheckBox(); 
foreach (Columns col in ColumnNames) 
{ 
    colCheckbox.Name = col.ColumnName;  
    ColumnList.Rows.Add(colCheckbox); // This is getting displayed as System.Windows.Forms.CheckBox,CheckState=0 
} 

Por favor ayuda.

+0

¿Esto es winforms? WPF? asp.net? –

+0

sus ventanas formas – NewBie

+0

¿Qué tienes hasta ahora? –

Respuesta

40

Deberá tener un campo boolean (columna) en el DataTable. Cuando vincula el DataTable al DataGridView, se creará una columna de casilla de verificación para ese campo boolean.

Código de ejemplo:

var dt = new DataTable(); 
dt.Columns.Add(new DataColumn("Selected", typeof(bool))); //this will show checkboxes 
dt.Columns.Add(new DataColumn("Text", typeof(string))); //this will show text 

var dgv = new DataGridView(); 
dgv.DataSource = dt; 

Esto obligar a la DataTable dt a la dgv DataGridView. El DataGridView mostrará automáticamente un DataGridViewCheckBoxColumn para el primer DataColumn (Selected) y un DataGridViewTextBoxColumn para el segundo DataColumn (Text).

+1

+1. Añadiría a su respuesta que la columna visual que se crea automáticamente es una ['DataGridViewCheckBoxColumn'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcheckboxcolumn.aspx), en caso de que el OP quiera agregarlo manualmente. – stakx

+0

¿es posible mostrar el CheckBox y el texto en una columna, cuando se usa DataGridViewCheckBoxColumn? ¿Cómo puedo unir ambos? – NewBie

+1

No puede tener texto en un DataGridViewCheckBoxColumn. El texto aparecerá en una columna diferente. Ver mi revisión para saber cómo hacer eso. –

-1

Debe especificar el tipo de la columna.

ColumnList.Columns.Add("Column Fields", gettype(CheckBox)); 

¿Pero por qué quiere agregar un control a una DataTable? ¿Por qué no solo una cuerda o un número entero?

+0

Pero esto no muestra ninguna casilla de verificación en la cuadrícula de datos. Necesito vincular casillas de verificación a la cuadrícula con un poco de texto vinculado a la casilla de verificación. – NewBie

+0

Debe agregar un DataGridCheckBoxColumn a Datagrid y vincular esa columna a un campo en DataTable. No es necesario agregar una casilla de verificación a DataTable. – Rhapsody

Cuestiones relacionadas