从RadComboBox中删除服务器端事件

时间:2018-02-01 19:27:07

标签: c# asp.net telerik server-side radcombobox

我希望在某种情况下,从Telerik RadComboBox中删除“OnSelectedIndexChanged”事件。

当方案满足时,我希望删除“myRCB_SelectedIndexChanged”,当它不是时,将事件保持原样。

我试过了:

myRCB.SelectedIndexChanged -= myRCB_SelectedIndexChanged

myRCB.SelectedIndexChanged -= new RadComboBoxSelectedIndexChangedEventHandler(myRCB_SelectedIndexChanged)


两者都不起作用,并且事件仍然会在更改索引时触发。我很感激帮助!

3 个答案:

答案 0 :(得分:0)

在正常控制的情况下,第一个应该工作,假设签名是正确的,但在这种情况下,控件是来自dll(?)的外部控件,我不确定,但是可以每个页面加载时都会填充处理程序吗?

您可以尝试在某些条件下填充页面加载时禁用处理程序。出于测试目的,tou可以例如将删除条件保存到标签或sessoon变量。

答案 1 :(得分:0)

第一个的语法对我有用。设置断点以确保事件处理程序不会重新添加。否则,可能在该场景上设置一个标志,并使用if语句包装整个Event Handler方法。

答案 2 :(得分:0)

这两个回复引导我回答(谢谢!)。我在必要时添加了断点,观察了添加/删除事件处理程序的时间/位置,并发现用户体验仍然存在 - 页面仍然会回发并运行SelectedIndexChanged事件,即使正在进行清除,之后不再进行补充。

这样做,让我想到只是禁用AutoPostBack我曾经尝试删除事件处理程序的地方。现在,除了在.aspx中单独定义AutoPostBack="true"之外,我还可以在.cs中将其删除。

我希望这可以帮助其他人,因为这让我在桌子上敲了好几天!