如何获取DataGrid SelectionChanged触发源组件?

时间:2013-06-24 18:48:08

标签: c# .net datagrid combobox selectionchanged

我有一个ComboBox绑定到一个绑定到DataGrid的对象。当我更改ComboBox选择或DataGrid中的SelectedItem时,会触发ComboBox上的事件SelecionChanged。

有没有办法知道哪个组件(DataGrid或ComboBox)已触发事件?

4 个答案:

答案 0 :(得分:1)

为了让ComboBox回发,我想它已经设置为AutoPostBack?如果这会影响GridView上的数据,那么所有事件都将触发。当触发完整回发时(例如将ComboBox设置为AutoPostBack = true),将触发包含新数据的每个事件。

您应该查看控件生命周期: http://msdn.microsoft.com/en-us/library/aa719775(v=vs.71).aspx(这只是msdn doc,它不是很好,但它是一个很好的起点)。

...您还应该尝试使用您的问题发布一些代码:)您正在做的事情有点含糊不清。它们都受到什么对象的约束?或者是与GridView和ComboBox绑定的相同数据集吗?

编辑:这篇文章可能会有所帮助:Two types of postback events

答案 1 :(得分:0)

如果我是你,我会将断点放在SelectedItem或SelectedChanged断点处,并尝试在调试模式下运行解决方案并查看第一个断点被击中的位置;)Callstack也会帮助你。

答案 2 :(得分:0)

假设您将它们连接到对象数据源。您可以为使用相同SelectMethod的下拉列表创建单独的数据源。这样,他们都会在回发后使用相同的数据进行更新。

否则使用javascript作为下拉列表的onchange事件,并设置一个隐藏字段,其中if是否已更改。然后检查该值以查看它是否来自下拉列表。

<asp:DropDownList runat="server" ID="drpOption"onchange="javascript:OptionChanged();"></asp:DropDownList>

function OptionChanged() {
    $('#hdnField').val = 'true';

    return false;
}

答案 3 :(得分:0)

你可以通过应用最先执行部分的BreakPoint来进行DAtaGRid和Combobox ANd检查的选择更改事件。!!