gpt4 book ai didi

c# - ClientScript 不适用于 AJAX UpdateProgress

转载 作者:行者123 更新时间:2023-11-28 02:06:06 25 4
gpt4 key购买 nike

我有一个订单输入页面可能需要一些时间来处理,用户认为浏览器已卡住并关闭它。这是一个弹出式浏览器,当单击 cmdAdd 按钮时,文本框中的项目被写入数据库,子窗口关闭,父窗口刷新以查看更改。这目前工作正常。

我添加了一个 AJAX UpdateProgress 来给用户一些反馈,但是现在 cmdAdd 浏览器没有关闭并且父级没有更新。进度指示器显示,数据库已更新,仅此而已。有什么想法吗?

注意:UpdateProgress指示器在站点其他地方使用,没有问题,就是我在弹出子窗口使用的时候。 cmdAdd_click 在没有 updateProgress 控件的情况下正常工作(子关闭,父刷新)

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="orderHistory.aspx.cs" Inherits="JWeb.orderHistory" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<title>JWebUtils - Order History Sheet</title>
<link href="App_Themes/Theme/Styles.css" rel="stylesheet" type="text/css" />
<link href="cssUpdateProgress.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script type="text/javascript">
var ModalProgress = '<%= ModalProgress.ClientID %>';
</script>
<DIV style="width: 700px; vertical-align: top; border-collapse: collapse;" class="pageBody">
<form id="Form1" method="post" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<script type="text/javascript" src="jsUpdateProgress.js"></script>
<asp:Panel ID="panelUpdateProgress" runat="server" CssClass="updateProgress">
<asp:UpdateProgress ID="UpdateProg1" DisplayAfter="0" runat="server">
<ProgressTemplate>
<div style="position: relative; top: 30%; text-align: center; vertical-align: middle;">
<img src="images/loading.gif" style="vertical-align: middle" alt="Processing" />
Processing ...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</asp:Panel>
<asp:ModalPopupExtender ID="ModalProgress" runat="server" TargetControlID="panelUpdateProgress" BackgroundCssClass="modalBackground" PopupControlID="panelUpdateProgress" />
<%-- <asp:button id="cmdAdd" tabIndex="5" runat="server" Width="95px" cssClass="dg_buttons" Text="Add to Order" onclick="cmdAdd_Click"></asp:button>
--%> <asp:UpdatePanel ID="pnlUpdate" runat="server">
<ContentTemplate>
<TABLE id="Table1" style="WIDTH: 100%;">
<TR>
<TD class="pageHeader" colspan="2">
<asp:label id="lblTitle" runat="server" Font-Names="Arial" Font-Bold="True">Order History Sheet</asp:label>
</TD>
</TR>
<TR>
<TD vertical-align: top;" style="width: 220px;">
<asp:button id="cmdAdd" tabIndex="5" runat="server" Width="95px"
cssClass="dg_buttons" Text="Add to Order" onclick="cmdAdd_Click"></asp:button>&nbsp;
<asp:button id="cmdClose" tabIndex="5" runat="server" Width="50px" Text="Close"
CssClass="dg_buttons" onclientclick="window.close(); return false;"></asp:button>&nbsp;
<asp:button id="cmdPrint" tabIndex="5" runat="server" Width="50px" Text="Print"
CssClass="dg_buttons" CausesValidation="False" UseSubmitBehavior="False"></asp:button>
</TD>
<TD vertical-align: top;" style="text-align: right; width: 480px;">
<asp:Label ID="lblCustomerName" runat="server"></asp:Label>
</TD>
</TR>
<TR>
<TD vertical-align: top;" style="vertical-align: top" colspan="2">
&nbsp;<span class="style1">* Qty Bought is total items purchased in the last 12
months from the current date </span>
<table style="WIDTH: 100%; vertical-align: top;">
<TR>
<TD colspan="2">
<asp:label id="lblMessage" runat="server" Font-Names="Arial" Font-Size="Small" Width="525px" ForeColor="Red"></asp:label>
</TD>
</TR>
<TR>
<TD colspan="2">
<div class="mGrid">
<< GRIDVIEW OMITTED FOR BEREVITY >>
</div>
</TD>
</TR>
</table>
</TD>
</TR>
</TABLE>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</DIV>
<script type="text/javascript" src="jsUpdateProgress.js"></script>
</body>
</html>

cmdAdd_Click:

    protected void cmdAdd_Click(object sender, EventArgs e)
{
string qty = null;
string itemCode = null;
int orderID = Convert.ToInt32((Session["OrderID"]));
int seqNum = 0;
int orderSeqNum = 0;
string description = null;
JWebUtils.priceType pricing = default(JWebUtils.priceType);
double price = 0;
string type = null;
ArrayList sqlParams = new ArrayList();
JWebDB db = new JWebDB();
System.Text.StringBuilder script = new System.Text.StringBuilder();
int discount = 0;
string strDisc = null;
JWebUtils jweb = new JWebUtils();

<< CODE TO UPDATE DB OMITTED FOR BEREVITY >>

script.Append("<script language=\"javascript\">");
script.Append("window.opener.document.forms[0].submit();self.close();");
script.Append("</script>");

Session["IsPopup"] = true;

ClientScript.RegisterStartupScript(this.GetType(), "XYZ", script.ToString());
}

最佳答案

要使 Ajax 在您的 Asp.net 网站中工作,您需要首先在您的 aspx 页面中添加 Scriptmanager 作为 ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚本。默认情况下,ScriptManager 控件会为 Microsoft Ajax Library 注册脚本。与页面。这使客户端脚本能够使用类型系统扩展和以支持部分页面呈现和 Web 服务调用等功能。

如果您仍然有问题,那么在您的代码隐藏文件中使用 ScriptManager.RegisterStartupScript 代替 ClientScript.RegisterStartupScript连同您的 aspx 页面上的 scriptamanager

关于c# - ClientScript 不适用于 AJAX UpdateProgress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com