How to handle the SelectedIndexChanged event for a ComboBox?

I have DataGridViewone that contains two columns ComboBox. The second ComboBoxwill be filled with data depending on the selected value from the first ComboBox.

How to handle an event SelectedIndexChangedfor the first ComboBox.

+5
source share
3 answers

A great resource for DataGridView questions can be found here:

http://www.windowsclient.net/Samples/Go%20To%20Market/DataGridView/DataGridView%20FAQ.doc

The following describes how to handle the selected change event:

How to handle the SelectedIndexChanged event?

, ComboBox. ComboBox SelectedIndexChanged. DataGridViewComboBox , DataGridView.EditingControlShowing. , . , , SelectedIndexChanged.

private void dataGridView1_EditingControlShowing(object sender, 
    DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox cb = e.Control as ComboBox;
    if (cb != null)
    {
        // first remove event handler to keep from attaching multiple:
        cb.SelectedIndexChanged -= new
        EventHandler(cb_SelectedIndexChanged);

        // now attach the event handler
        cb.SelectedIndexChanged += new 
        EventHandler(cb_SelectedIndexChanged);
    }
}

void cb_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show("Selected index changed");
}
+11

EditingControlShowing, cb_SelectedIndexChanged , combobox, .

:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == comboboxColumn.Index && e.RowIndex >= 0) //check if combobox column
    {
        object selectedValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
    }
}

//changes must be committed as soon as the user changes the drop down box
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}
+11

,

<asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline">
                 <ContentTemplate>
                 <asp:DropDownList ID="ddl2" runat="server" >                  
                </ContentTemplate>
                <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddl1" EventName="SelectedIndexChanged" />
                </Triggers>
                </asp:UpdatePanel>

set the property AutoPostBack = "true" for the first drop-down list like this.

<asp:DropDownList ID="ddl1" runat="server" AutoPostBack="true"  
                        OnSelectedIndexChanged="ddl1_SelectedIndexChanged">
0
source

All Articles