我有一个带有DropDownList
和AutoPostBack=true
的ASP.NET EnableViewState=false
。我在页面上有一个什么都不做的按钮。如果我更改了ddl中的选择,它会回发,这是预期的。如果我单击该按钮,页面会回发并且ddl的SelectedIndexChanged
将会触发。为什么会被解雇?
答案 0 :(得分:10)
“感谢您的反馈。如果 页面上禁用ViewState或 在DropDownList控件上, 所选索引无法保存,所以 每个回发看起来都像是选中的 索引已经改变。你可以保存 自己选择的索引 比较它,看看是否 选择真的改变了,或者你 可以启用ViewState 下拉列表。 “
在您的情况下,下拉列表的视图状态为false。启用相同或您可以比较上面建议的所选项目的索引。
答案 1 :(得分:2)
尝试启用viewstate。这是一个常见问题。
修改强>
如果你不想启用viewstate,你必须自己跟踪下拉列表值,就像这个人DropDownList OnSelectedIndexChange to 0th index w/out ViewState
一样答案 2 :(得分:1)
如果你在page_load中加载你的ddl,当你点击它按钮时它会再次运行page_load并再次加载ddl项目以更改所选索引。但我不知道你的代码,所以这是一个假设。
答案 3 :(得分:0)
我有同样的问题。我发现我的问题是我调用了渲染函数Page_Load
。
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreRender
我完全错过了页面加载Page_Load
作为默认加载函数的事实,然后在运行prerender时再次加载它。我将其更改为以下内容,现在只调用一次该函数:
Sub Renderer(ByVal sender As Object, ByVal e As EventArgs) Handles Me.PreRender