Problem with DataGridBoolColumn

Y

Yossi And Inbar

Hi,

I am using VS2003 C# and i have a problem with DataGridBoolColumn.

I am using DataGridBoolColumn for show open/close Value, but the column not
work like i need :

1) The columns are gray. all other columns are ok.

2) The values at the column are allways true, not like in the database. ( In
the database the column is Bit type column with 0/1 values).

I change all ReadOnly values to false and all AllowNull property to false,
but its not solve the problem I add the column into DataGridStyle by .Net
style wizard...

What's wrong here ?

How can i solve the problem ?

Thanks,

Yossi
 
S

Song Huang

Microsoft's Bug:

If you are populating a DataGrid in your Windows Forms application and are
using a TableStyle to define custom columns, you will not get a
DataGridBoolColumn to correctly save or retrieve boolean values from your
DataSet. This will occur IF you manually set the TrueValue and FalseValue
properties of the DataGridBoolColumn object in the designer explicitly. This
occurs because the designer will convert whetever you type in those two
properties to System.String values - not System.Boolean values.

You should explicitly set the TrueValue and FalseValue properties of the
DataGridBoolColumn object to actual boolean values as shown below.
private void frmMyForm_Dates_Load(object sender, System.EventArgs e)
{
// other Loading event code ....

// This is what the VS.NET designer does:
dataGridBoolColumn1.TrueValue = "True";
dataGridBoolColumn1.FalseValue = "False";
// The preceding causes a problem because the DataSet Column used with
this
// column is of type System.Boolean and NOT System.String.

// So, change it to something like the following to fix the problem:
dataGridBoolColumn1.TrueValue = true;
dataGridBoolColumn1.FalseValue = false;
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top