We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

Limiting selectable items in a grid combo cell

Thread ID:

Created:

Updated:

Platform:

Replies:

24822 Feb 11,2005 03:44 AM Feb 14,2005 08:07 AM Windows Forms 7
loading
Tags: GridControl
Nick Zdunic
Asked On February 11, 2005 03:44 AM

Hi, I have a combo in one of the cells in the grid (unbound). I want to limit the selectable items to only those that satisfy a condition. The items in the combo look something like this: Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 In this example I''d only like Item 3, 4, 6 and 7 to be selectable. Thanks, Nick

Administrator [Syncfusion]
Replied On February 11, 2005 07:13 AM

Hi Nick, one idea would be to derive a cell type from ComboBoxCellRenderer class and override the following methods: object oldValue; protected override void OnShowDropDown() { oldValue = ControlValue; base.OnShowDropDown (); } protected override void OnCloseDropDown(PopupCloseType reason) { base.OnCloseDropDown (reason); string s = ControlText; if (s == "Item3" || s == "Item4") { ; // accept entry } else { ControlValue = oldValue; } } public override bool ValidateString(string s) { if (s == "Item3" || s == "Item4") { // accept entry } else return false; return base.ValidateString(s); } >Hi, > >I have a combo in one of the cells in the grid (unbound). > >I want to limit the selectable items to only those that satisfy a condition. > >The items in the combo look something like this: > >Item 1 > Item 2 > Item 3 > Item 4 > Item 5 > Item 6 > Item 7 > >In this example I''d only like Item 3, 4, 6 and 7 to be selectable. > >Thanks, > >Nick

Nick Zdunic
Replied On February 14, 2005 02:44 AM

How is this used in client code? >Hi Nick, > >one idea would be to derive a cell type from ComboBoxCellRenderer class and override the following methods: > > > object oldValue; > protected override void OnShowDropDown() > { > oldValue = ControlValue; > base.OnShowDropDown (); > } > > protected override void OnCloseDropDown(PopupCloseType reason) > { > base.OnCloseDropDown (reason); > string s = ControlText; > if (s == "Item3" || s == "Item4") > { > ; // accept entry > } > else > { > ControlValue = oldValue; > } > } > > public override bool ValidateString(string s) > { > if (s == "Item3" || s == "Item4") > { > // accept entry > } > else > return false; > > return base.ValidateString(s); > } > > > >>Hi, >> >>I have a combo in one of the cells in the grid (unbound). >> >>I want to limit the selectable items to only those that satisfy a condition. >> >>The items in the combo look something like this: >> >>Item 1 >> Item 2 >> Item 3 >> Item 4 >> Item 5 >> Item 6 >> Item 7 >> >>In this example I''d only like Item 3, 4, 6 and 7 to be selectable. >> >>Thanks, >> >>Nick

Administrator [Syncfusion]
Replied On February 14, 2005 04:42 AM

To use this technique, you would have to derive your own combobox cell control (deriving both GridComboBoxCellModel and GridComboBoxCellRenderer). In your renderer derived class, you would override the methods listed above. Another option that might work (if it suites your purpose) without deriving your own cell control would be to handle the CurrentCellShowingDropDown event. There you could just remove the values fdrom the droplist that you do not want to see. Then they would not be selectable as they would not appear in the droplist. Here is a link to a KB article that shows something similar. http://www.syncfusion.com/Support/article.aspx?id=567

Nick Zdunic
Replied On February 14, 2005 06:01 AM

I need the items to be visible still, so the first method seems better. How does client code use the derived classes. How do I get the grid to use the derived class. Can you please supply some sample code for this. >To use this technique, you would have to derive your own combobox cell control (deriving both GridComboBoxCellModel and GridComboBoxCellRenderer). In your renderer derived class, you would override the methods listed above. > >Another option that might work (if it suites your purpose) without deriving your own cell control would be to handle the CurrentCellShowingDropDown event. There you could just remove the values fdrom the droplist that you do not want to see. Then they would not be selectable as they would not appear in the droplist. Here is a link to a KB article that shows something similar. http://www.syncfusion.com/Support/article.aspx?id=567

Administrator [Syncfusion]
Replied On February 14, 2005 06:18 AM

There is a section in the User Guide, Essential Grid\Features in Depth\Deriving a Cell Control that discusses deriving your own cell control. We ship 20+ samples of derived cell controls. (Do a search for CellModels.Add in the sample folder). The calendarcells sample in this folder is one such: Syncfusion\Essential Suite\3.0.1.0\Windows\Grid.Windows\Samples\CellTypes

Administrator [Syncfusion]
Replied On February 14, 2005 06:42 AM

You can also probably do this using events without deriving a cell control. Here is a try at this using the CurrentCellShowingDropDown and the CurrentCellCloseDropDown events. http://www.syncfusion.com/forums/Uploads/GC_Combo_forum1.zip

Nick Zdunic
Replied On February 14, 2005 08:07 AM

This method works very well. >There is a section in the User Guide, Essential Grid\Features in Depth\Deriving a Cell Control that discusses deriving your own cell control. > >We ship 20+ samples of derived cell controls. (Do a search for CellModels.Add in the sample folder). The calendarcells sample in this folder is one such: Syncfusion\Essential Suite\3.0.1.0\Windows\Grid.Windows\Samples\CellTypes

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;