在Asp.NET回发中的UpdatePanel输入按键

时间:2011-08-07 01:32:32

标签: c# asp.net asp.net-ajax updatepanel

您好我有updatepanel设置。我已将其更新模式设置为条件,以便仅在触发事件发生时触发。在updatepanel内部,我将触发器设置为一些图像控件,并将事件名称设置为单击。一切都很好,直到现在。

但现在我还有textbox设置。当我输入其他文本并按Enter键时,它会导致回发,更新面板将获得控制权。即使我将autoPostBack的{​​{1}}属性设置为false,将textbox updatePanel设置为Conditional。有人可以指出问题所在。我究竟做错了什么?我只希望UpdateMode在此updatepanel

的触发事件发生时负责

以下是updatePanelupdatepanel的代码。 。

textBox

4 个答案:

答案 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 。这种方法对我有用。