我有一个绑定到一个对象的组合框,该对象也绑定到一个 DataGrid。当我更改 ComboBox 选择或 DataGrid 中的 SelectedItem 时,将触发 ComboBox 处的事件 SelectedChanged。
有没有办法知道哪个组件(DataGrid 或 ComboBox)触发了事件?
我有一个绑定到一个对象的组合框,该对象也绑定到一个 DataGrid。当我更改 ComboBox 选择或 DataGrid 中的 SelectedItem 时,将触发 ComboBox 处的事件 SelectedChanged。
有没有办法知道哪个组件(DataGrid 或 ComboBox)触发了事件?
为了让 ComboBox 回发,我想它设置为 AutoPostBack?如果这完全影响了 GridView 上的数据,那么所有事件都会触发。当触发完整回发时(例如将 ComboBox 设置为 AutoPostBack=true),每个带有新数据的事件都会被触发。
您应该查看控件生命周期:http: //msdn.microsoft.com/en-us/library/aa719775 (v=vs.71).aspx (这只是 msdn 文档,它不是很好,但它很好初始点)。
...您还应该尝试在您的问题中发布一些代码:) 您在做什么有点模棱两可。它们都绑定到什么对象?还是同一个数据集绑定到 GridView 和 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;
}
您可以使 DAtaGRid 和 Combobox 的选择更改事件并通过应用 BreakPoint 来检查哪个部分首先执行..!!