您好我有updatepanel
设置。我已将其更新模式设置为条件,以便仅在触发事件发生时触发。在updatepanel
内部,我将触发器设置为一些图像控件,并将事件名称设置为单击。一切都很好,直到现在。
但现在我还有textbox
设置。当我输入其他文本并按Enter键时,它会导致回发,更新面板将获得控制权。即使我将autoPostBack
的{{1}}属性设置为false,将textbox
updatePanel
设置为Conditional。有人可以指出问题所在。我究竟做错了什么?我只希望UpdateMode
在此updatepanel
以下是updatePanel
和updatepanel
的代码。 。
textBox
答案 0 :(得分:2)
您是否在页面上设置了submit
按钮?按Enter键会导致表单提交,因此UpdatePanel可能正在执行更新。
如果您不确定,请在此处发布完整的HTML和JS。
更新:此外,如果这是页面上唯一的文本框,则Enter on Enter是默认行为。在这种情况下,添加一个eventhandler来取消默认的behvior,如下所示:
<强> JS:强>
<script type="text/javascript">
function disableSubmitOnEnter(e)
{
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = e.which; //firefox
return (key != 13);
}
</script>
<强>代码隐藏:强>
search.Attributes.Add("onkeypress", "return disableSubmitOnEnter();");
答案 1 :(得分:0)
对onkeydown事件使用Javascript函数,如果是enter键,则返回false。 (输入键是键码13)
if(event.keycode == 13) return false;
答案 2 :(得分:0)
如果上述答案无效,请使用此单行代码。
<asp:TextBox ID="search" CssClass="search" runat="server" AutoPostBack="false" onkeydown = "return (event.keyCode!=13);" ></asp:TextBox>
答案 3 :(得分:0)
将TextBox
放在UpdatePanel
中,并将AutoPostBack
的{{1}}属性设置为 true 。这种方法对我有用。