我正在创建一个ASP.net应用程序。我使用项填充ListBox控件,并使用Listbox的PreRender事件根据控件中的最大项设置其宽度。
但是在渲染ListBox之后,第一次单击ListBox中的一个项时,PreRender事件将触发并从ListBox中移除焦点(此事件不必要地触发,因为已经渲染了ListBox)。第二次单击ListBox中的项目时,PreRender事件不会触发并保持焦点。
这种行为是正常的吗?什么可能导致这种行为?
如果不是回发,则ListBox会填充在PageLoad上,并带有默认值。 列表框填充在TextBox的TextChanged事件上(TextBox用于在DB中搜索)
修改
我注释掉了PreRender事件并且行为没有消失。现在我想这可能是由TextBox中的PostBack引起的,当我从中移除焦点并从ListBox中选择一个项目时。
这方面的证据:我在TextBox(加载指示符)的请求的开头和结尾之间显示了一个gif,当我第一次从ListBox中选择一个项目时,gif是可见的。渲染。第二次没有问题。
使用AutoPostBack属性指定当TextBox控件失去焦点时是否会自动回发到服务器。在TextBox控件中按ENTER或TAB键是更改焦点的最常用方法。
我发现了为什么我报告的行为发生了。我可以以某种方式使TextBox不会在失去焦点时回发吗?它已经回归TextChanged了,这已经足够了。
答案 0 :(得分:0)
使用AutoPostBack属性指定当TextBox控件失去焦点时是否会自动回发到服务器。在TextBox控件中按ENTER或TAB键是更改焦点的最常用方法。
我发现了为什么我报告的行为发生了。我现在将搜索如何在失去焦点时停止autopostoback。