c# - 连续回发
问题描述
我不知道为什么我的页面不断刷新,然后我在 aspx 页面上的 Page_Load 上放置了一个断点。它不断刷新和加载 Page_Load 而我没有做任何事情。
对于 TextChange 事件,我有一些具有 AutoPostBack="True" 的文本框。各位觉得是这个问题吗?你们知道为什么它继续做POST吗?
感谢你们。
这些是一些代码。
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="VesselSchedule.aspx.cs" Inherits="VesselHeader.VesselSchedule" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Panel runat="server" DefaultButton="btnVesselCode">
<label class="col-sm-4 control-label">Vessel Code</label>
<div class="col-sm-4">
<asp:TextBox ID="txtVesselCode" runat="server" class="form-control pull-left" placeholder="Vessel Code" onkeypress="return EnterEvent(event)" AutoPostBack="True" OnTextChanged="txtVesselCode_TextChanged" />
<asp:Label ID="lblDescription" runat="server" Text="" ForeColor="blue" Visible="true"></asp:Label>
<asp:Button ID="btnVesselCode" runat="server" Text="Button" visible="false" OnClick="btnVesselCode_Click"/>
</div>
</asp:Panel>
<div class="col-sm-4">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<asp:TextBox ID="txtPublishedETADate" runat="server" ClientIDMode="Static" class="form-control" OnTextChanged="txtPublishedETADate_TextChanged" AutoPostBack="True"/>
</div>
</div>
解决方案
任何类型的 PostBack 都会触发 Page_Load 事件。要在每次回发时不运行 Page_Load 中的整个代码,您需要将代码包装在检查中。一个简单的 if 条件将为您完成。
if (!Page.IsPostBack)
{
//code to execute on fresh page load only.
}
推荐阅读
- tableau-api - 基于开始日期和结束日期的 Tableau 卷计算
- netbeans - 在 NetBeans 中显示非打印字符不太生动
- firebase - Firestore 规则对象
- c# - C# - 即使 CommandTimeout 设置为在设定时间后终止查询,查询仍在 SQL Server 数据库中运行
- python - 在 matplotlib 直方图中排除一定范围的 bin?
- oracle - 无法在 HTTP 代理后面使用 wget 下载 Oracle 的 jdk-8u181 包
- apache - 有谁知道 Apache Ctakes 是否可以在没有互联网连接的情况下运行 UMLS?
- php - 从 PHP 启动脚本运行 Python 脚本,但不结束它
- javascript - 如何在 iframe 中的框架集中设置图像的不透明度?
- sql - sql 3表总和