UpdatePanel在Asp.. NET按enter键回发
本文关键字:enter Asp NET UpdatePanel | 更新日期: 2023-09-27 18:04:56
你好,我有一个updatepanel
设置。我将其更新模式设置为有条件的,以便仅在触发事件发生时触发。在updatepanel
中,我将触发器设置为一些图像控件,并将事件名称设置为单击。到现在为止一切都很好。
但现在我也有一个textbox
设置。当我输入其他文本并按回车键时,它会导致回发和更新面板控制。即使我已经将textbox
的autoPostBack
属性设置为假,updatePanel
UpdateMode
设置为条件。谁能指出问题所在吗?我做错了什么?我只希望updatepanel
在触发事件发生时负责这个updatePanel
updatepanel
和textBox
的代码。 <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>
您是否在页面上设置了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
中,并将TextBox
的AutoPostBack
属性设置为true。