我有一个绑定到绑定到DataGrid的对象的ComboBox。当我更改ComboBox选择或DataGrid中的SelectedItem时,ComboBox上的事件SelecionChanged被触发。如何获取DataGrid SelectionChanged触发源组件?
有没有办法知道哪个组件(DataGrid或ComboBox)触发了事件?
我有一个绑定到绑定到DataGrid的对象的ComboBox。当我更改ComboBox选择或DataGrid中的SelectedItem时,ComboBox上的事件SelecionChanged被触发。如何获取DataGrid SelectionChanged触发源组件?
有没有办法知道哪个组件(DataGrid或ComboBox)触发了事件?
如果我是你,我会将断点放在SelectedItem或SelectedChanged断点处,并尝试在调试模式下运行解决方案,并查看第一个断点被击中的位置;)Callstack也会帮助你。
假设您已将它们都连接到对象数据源。您可以为使用相同SelectMethod的下拉菜单创建单独的数据源。这样,他们都会在回传后使用相同的数据进行更新。
否则将javascript用于下拉列表的onchange事件,并设置一个隐藏字段,如果已更改或未更改。然后检查该值以查看它是否来自下拉菜单。
<asp:DropDownList runat="server" ID="drpOption"onchange="javascript:OptionChanged();"></asp:DropDownList>
function OptionChanged() {
$('#hdnField').val = 'true';
return false;
}
为了让ComboBox回发,我会想象它被设置为AutoPostBack?如果这影响了GridView上的数据,那么所有事件都会触发。当一个完整的回发被触发时(比如将ComboBox设置为AutoPostBack = true),每个包含新数据的事件都会被触发。
你应该看看控制生命周期: http://msdn.microsoft.com/en-us/library/aa719775(v=vs.71).aspx(这只是msdn文档,它不是很好,但它是一个很好的起点)。
...你也应该尝试并发布一些代码与你的问题:)这是有点含糊不清你在做什么。他们都绑定了什么对象?或者是绑定到GridView和ComboBox的数据集?
编辑:此信息可能有点帮助:Two types of postback events
U可以使双方的DataGrid和ComboBox的选择变化事件和应用断点检查哪一部分先执行.. !!
事件有一个与他们相关的“sender”和“e”。 'sender'是告诉你谁调用了这个事件。 – Brian
我也尝试过使用发件人,但发件人类型始终是ComboBox。不知道为什么。 而且我也尝试使用DataGrid SelectionChanged事件来设置在ComboBox SelectionChanged事件中处理的标志,但在ComboBox SelectionChanged后触发DataGrid SelectionChanged。 –