Checkbox and SetValue
Hi,
how can i set checkboxes in a Celltype = CheckBox Column to state checked ??
I already tried true and false according to the values given the CheckBoxOptions Section in the designer but with no luck. Am i missing anything ??
SIGN IN To post a reply.
10 Replies
AD
Administrator
Syncfusion Team
April 4, 2005 03:02 PM UTC
Additionally, how can i determine if the current record is a record of the child table or not ?? rec.ParentRecord is always null.
Thanks
AD
Administrator
Syncfusion Team
April 4, 2005 05:16 PM UTC
If this is a GroupingGrid, then you set values in a checkbox by using record.SetValue to set the appropriate value in the underlying data. If the System.Type of this column is bool, then you would have code like rec.SetValue("MyBoolField", true).
I am not sure what you know when you want to find our whether a record is in a child or not. Here is code you can use for TableControlCurrentCellMoved.
private void gridGroupingControl1_TableControlCurrentCellMoved(object sender, GridTableControlCurrentCellMovedEventArgs e)
{
GridCurrentCell cc = e.TableControl.CurrentCell;
GridTableCellStyleInfo style = e.TableControl.Model[cc.RowIndex, cc.ColIndex];
if(style.TableCellIdentity.Table.Equals(this.gridGroupingControl1.Table)
&& ( style.TableCellIdentity.TableCellType == GridTableCellType.AlternateRecordFieldCell ||
style.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell))
{
Console.WriteLine("TopLevel");
}
else
{
Console.WriteLine("Nested");
}
}
AD
Administrator
Syncfusion Team
April 5, 2005 07:37 AM UTC
Hi,
it is a GridGroupingControl. I did as you suggested. I set the Celltype of the column to Checkbox and the CellValueType to System.Boolean. Now I use record.SetValue("CheckBoxColumn", true). But my boxes still remain unchecked.
What can the problem be ?
AD
Administrator
Syncfusion Team
April 5, 2005 08:13 AM UTC
Depending upon the edit state of the record, you may have to call record.BeginEdit and record.EndEdit to make the changes. Here is a little sample. When you make a row current. the bool value is set true in tableControlCurrentCellMoved. There is also a button that will flip the bool value in the current row.
http://www.syncfusion.com/Support/user/uploads/GGC_BookMark_bfd0a948.zip
AD
Administrator
Syncfusion Team
April 5, 2005 03:03 PM UTC
Yes it works on the parent table. But when i try to do the same thing on the nested child table then none of the cells gets checked.
I think this is because i can''t reference a child column using the rec.SetValue("childCheckRow", true) command.
Can you tell me how i can get a reference to a child column or explicitly loop only the child columns ?
I''m working in the ctor of the form, so i''m looping all records using GGC.Table.Records Collection.
thanks
AD
Administrator
Syncfusion Team
April 5, 2005 05:33 PM UTC
You have to recursively access the nestedtables to locate a record in a nested table. Here is a sample that flips a boolean value on teh current record whether it is in a parent table or the child table.
http://www.syncfusion.com/Support/user/uploads/GGC_BookMark_de4c1ecc.zip
AD
Administrator
Syncfusion Team
April 6, 2005 08:00 AM UTC
I get an error in your sample in line:
int offset = gnt.ChildTable.GetFirstRecord().GetRowIndex()- gnt.ChildTable.GetRowIndex();
Message:''Syncfusion.Grouping.Record'' does not contain a definition for ''GetRowIndex''
could you please tell me a way to correct this ?
AD
Administrator
Syncfusion Team
April 6, 2005 09:07 AM UTC
What version of our library are you using? I ran the sample using 3.0.1.0.
AD
Administrator
Syncfusion Team
April 6, 2005 09:41 AM UTC
same as you: 3.0.1.0.
All assemblies except for Syncfusion.WebServer are listed in the GAC as Version 3.0.1.0
Suggestions
AD
Administrator
Syncfusion Team
April 6, 2005 10:27 AM UTC
I was using a debug build of our 3.0.1.0. That method is exposed in the debug build but not in the release build. I will have to discuss why this was done with Stefan, the grid architect. There must be another way to get at this information that I am not seeing.
Anyway, for now, to get that code working in release, you can add this method to the form class,
public int GetRowIndex(Element el)
{
return this.gridGroupingControl1.Engine.Table.NestedDisplayElements.IndexOf(el);
}
Then replace the offending line with this line:
int offset = GetRowIndex((GridRecord)gnt.ChildTable.GetFirstRecord())- GetRowIndex(gnt.ChildTable);
SIGN IN To post a reply.
- 10 Replies
- 1 Participant
-
AD Administrator
- Apr 4, 2005 02:56 PM UTC
- Apr 6, 2005 10:27 AM UTC