我有一个DropDownList连接到TextBox . 触发事件SelectedIndexChanged时,文本框中的文本会更改 . 文本框的内容也可以通过用户输入进行更改 . 在页面的末尾,用户必须提交数据(按钮) . 启用javascript时一切正常,但我也有禁用javascript的用户 . 如果没有javascript,DropDownList的SelectedIndexChanged事件将在Button-Click(处理按钮的Click-Event之前)之后被调用 . 用户对文本框的输入将被SelectedIndexChanged事件覆盖 .
如果按钮单击触发SelectedIndexChanged事件,如何在Code后面检测?如何才能让用户更改文本框的文本?
编辑:我可以使用属性IsPostBackEventControlRegistered吗?单击按钮时似乎总是如此,但在SelectedIndexChanged事件中为false .
1 回答
嗯,这是可能的,但并不容易 . 您基本上需要通过使用隐藏字段来跟踪是否启用了javascript,执行以下操作:
你可以从window.onload或jquery.ready事件中调用这个脚本,无论你喜欢什么样的JS选项,这都可以告诉你是否启用了JS来执行selectedindexchanged事件,或者是否因为JS未启用而触发了它 . 要判断按钮是否被单击并导致回发,您可以检查:
字段并查看ID是否与按钮的UniqueID匹配 . ASP.NET中的每个控件都设置了它的ID(通常,但并非总是,由于某些原因) . 虽然,我不确定,你可能必须设置
UseSubmitBehavior="False"
才能实现 . 隐藏的字段可以被操纵,因此它不是完全的 .你应该问的问题是,你真的需要这种复杂性吗?