UpdatePanel在Asp.. NET按enter键回发

本文关键字:enter Asp NET UpdatePanel | 更新日期: 2023-09-27 18:04:56

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

但现在我也有一个textbox设置。当我输入其他文本并按回车键时,它会导致回发和更新面板控制。即使我已经将textboxautoPostBack属性设置为假,updatePanel UpdateMode设置为条件。谁能指出问题所在吗?我做错了什么?我只希望updatepanel在触发事件发生时负责这个updatePanel

这是我的updatepaneltextBox的代码。
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ImageButtonLeftArrow" EventName="click" />
                <asp:AsyncPostBackTrigger ControlID="ImageButtonRightArrow" EventName="click" />
            </Triggers>
            <ContentTemplate>
                <asp:AdRotator ID="AdRotator1" runat="server"
                AdvertisementFile="~/MainImages.xml" Height="650" Width="934" 
                onadcreated="AdRotator1_AdCreated" CssClass="borderClassForAdRotator" />
                <asp:UpdateProgress ID="UpdateProgress1" runat="server" >
                    <ProgressTemplate>
                        <div >
                        <img src="images/loading.gif" class="overLayImage" />
                        </div>
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </ContentTemplate>
        </asp:UpdatePanel>
 <asp:TextBox ID="search" CssClass="search" runat="server" AutoPostBack="false" ></asp:TextBox>

UpdatePanel在Asp.. NET按enter键回发

您是否在页面上设置了submit按钮?按enter会导致表单提交,因此,UpdatePanel可以执行更新。

如果你不确定,在这里发布完整的HTML和JS。

Update:另外,如果这是页面上唯一的文本框,则Submit on Enter是默认行为。在这种情况下,添加一个事件处理程序来取消默认行为,如下所示:

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();");

为onkeydown事件使用Javascript函数,如果是回车键则返回false。(回车键为键码13)

if(event.keycode == 13) return false;

如果上面的答案不起作用,则使用这一行代码。

<asp:TextBox ID="search" CssClass="search" runat="server" AutoPostBack="false" onkeydown = "return (event.keyCode!=13);" ></asp:TextBox>

TextBox放在UpdatePanel中,并将TextBoxAutoPostBack属性设置为true