Hi,
I want to add my custom UltraComboEditor in Ultrawingrid. i implemented as mentioned below.
MyUltraComboEditor myComboEditor = new MyUltraComboEditor();myComboEditor.DropDownStyle = DropDownStyle.DropDownList;
//..Getting Values and adding into the list ..
libertyComboEditor.Items.Add(new ValueListItem(kv[0], kv[1]));
ultraGrid1.DisplayLayout.Bands[0].Columns[j].EditorControl = myComboEditor;
Here, i set the DropDownStyle to DropDownList but still the cell is editable.
Moreover, I want to set the Combo value at the runtime. But i wont be able to achieve this.
public void SetComboValue(int rowno, string key, int band, string value){UltraGridRow row = this.ultraGrid1.Rows[rowno];if (row != null){UltraGridCell cell;cell = row.Cells[this.ultraGrid1.DisplayLayout.Bands[band].Columns[key]];MyUltraComboEditor myComboEditor = (MyUltraComboEditor)cell.EditorControlResolved;int t = 0;t = myComboEditor.FindString(value);myComboEditor.SelectedIndex = t;}}
I want to capture the ValueChanged event. Even that is not firing.
will anyone help me on this.
Thanks,
Try setting the Activation to ActivateOnly. That settings allows the user to click on the cell and enter edit mode, but not to change the value.
Mike,
Thanks for the reply.
I have Column A (Items: "Buy","Redeem" and "Exchange") and Column B (Items: "Empty", "Yes", "No" )and i have List items in both the columns as specified.
By Default While loading grid, Buy is selected in Column A and "Empty" is selected in Column B
On Before Enter Mode event, based on the selection of cells in Column A i want to Enable OR Disable the UltraComboEditor in Column B
(So in this case, as you mentioned i can use CellActivation.NoEdit OR Activation.AllowEdit;) void ultraGrid1_BeforeEnterEditMode(object sender, System.ComponentModel.CancelEventArgs e) { if (ultraGrid1.ActiveRow.Cells[1].Value.ToString() != "Buy") ultraGrid1.ActiveRow.Cells[5].Activation = Activation.NoEdit; else ultraGrid1.ActiveRow.Cells[5].Activation = Activation.AllowEdit; }
void ultraGrid1_AfterExitEditMode(object sender, System.EventArgs e) { //do some other validation and set the value for some other cells. }
Now, For the first time, i click on Column A and On before Enter edit mode, nothing will happen since i have the check to "Buy".now i select Redeem, and then i click on Column B, not the cell becomes non editable.
since the cell becomes non editable, Column B is not entering into Edit mode.
My requirement is this: The Cell (Column B) should always be in edit mode. But the Controls (Controls i mean, the UltraComboEditor) inside that can be Enabled or Disabled.Is there any way to do this?
Thanks.
RMuthu said:i want to disable the UltraComboeditor in few cells
What exactly do you mean by this? If you don't want a dropdown in some cells, then simply do not set the EditorControl on that cell.Or, you could use the Activation property on the cell to disable editing of that cell.
Disabling the ComboEditor control will not have any effect on the grid. The grid doesn't really use the control, the control provides an editor for use by the grid.
Thanks for the reply,
I add UltraComboEditor in the InitializeRow event so that i can assign Ultracomboeditor for each row.
Now i want to disable the UltraComboeditor in few cells. but its not working. Please let me know how to do that.
Please find the code below
public void EnableCombo(int row, string columnKey, boo enable)
{
if (0 <= row && row < ultraGrid1.Rows.Count)
if
(mColumnProperties.ContainsKey(columnKey))
UltraComboEditor myComboEditor = new UltraComboEditor();
myComboEditor = (
UltraComboEditor)ultraGrid1.Rows[row].Cells[columnKey].EditorControlResolved;
if (myComboEditor != null)
myComboEditor.Enabled = enable;
}
You cannot tell the grid at design-time that it needs to create a *new* editor for each row, so you would have to use the InitializeRow event to assign a new instance yourself. As I mentioned in my previous posts, if you want to modify the list in a particular cell without having the list in the entire column affected, you need to have a new editor on that cell with its own list; if you only need to select a new value, you can assign the value of the cell, as I mentioned.
-Matt