gpt4 book ai didi

c# - ASP.NET 计算框数,然后从同一按钮执行弹出窗口

转载 作者:行者123 更新时间:2023-11-28 21:22:41 24 4
gpt4 key购买 nike

好的,我希望我能很好地解释这一点。

我的页面上有一个或多个第三方向上/向下微调器+文本框控件,这些控件是黑框,我无法更改其源。

我希望用户更改 UpDownControl 内容以选择数量,然后单击日历按钮,这将:

  1. 添加所有向上/向下框的数量。
  2. 调用 JavaScript 弹出窗口以显示日历,其中包含网址“...calendar.asp?qty=5”中第 1 步的计数。

我的问题是在同一次单击中执行这两个步骤。就目前情况而言,我可以单击按钮一次,这很重要项目并将它们添加到弹出字符串中,然后我必须再次单击它才能实际执行 JS 弹出窗口。

该代码最初编写的目的是将计数“加载”到第二个按钮中,然后以编程方式单击它,但看起来就像浏览器上的弹出窗口一样,因为用户没有点击那个按钮。

这是我到目前为止几乎可以使用的东西 -

在我的页面上:

<asp:ImageButton ID="btnPrepCal" runat="server" Text="PrepCal" OnClick="btnPrepCal_Click" ImageUrl="~/images/Calendar.gif"/>        

在代码后面:

public void btnPrepCal_Click(object sender, EventArgs e)
{
StringBuilder sbParams = new StringBuilder();

int TotalQty = 0;
int basketItemCount = 0;
int rowIndex = 0;
string Sku = string.Empty;

foreach (GridViewRow varRow in VariantGrid.Rows)
{
int qnty = GetControlValue(varRow, "Quantity", 0);
if (qnty > 0)
{
basketItemCount++;
string optionList = (string)VariantGrid.DataKeys[rowIndex].Value;
ProductVariant variant = _VariantManager.GetVariantFromOptions(optionList);

if (variant != null)
{
BasketItem basketItem = GetBasketItem(optionList, varRow);
if (basketItem != null)
{
TotalQty += basketItem.Quantity;
Sku = variant.Sku;
}
}
}
rowIndex++;
}
if(Sku.Length > 4) Sku = Sku.Substring(0,4);
sbParams.Append(string.Format("?sku={0}&Qty={1}", Sku, TotalQty));
string popup = string.Empty;
popup = string.Format("window.open('http://trustedtours.org/store/egalaxycalendar.asp{0}','Reservation Calendar','width=265,height=465')",sbParams.ToString());
btnPrepCal.OnClientClick = popup;

}

我是 .NET 和 Web 编程的新手,所以我可能会完全倒退,所以感谢任何帮助。如果不清楚我要做什么或如何做,我深表歉意。如果您需要更多信息,请询问 - 文件的其余部分是很多购物车的胡言乱语,所以我将其遗漏了,我希望这已经足够了。

---- 更新 ----查看引用的页面后,我得到:

Type cstype = this.GetType();
ClientScriptManager cs = Page.ClientScript;
StringBuilder cstext1 = new StringBuilder();
cstext1.Append("<script type=text/javascript>" + popup + "<script>");
cs.RegisterStartupScript(cstype, "PopupCalendar", cstext1.ToString());

我相信这是在我设置上面的 Click 处理程序底部附近的 popup 值后添加的,删除了 OnClientClick 部分,对吗?

单击按钮后是否应该重新加载页面上的另一个窗口? (我讨厌作为一个新手并问一些可能显而易见的问题。)

最佳答案

您可以使用 ClientScriptManager.RegisterStartupScript 来实现您的目标方法。不要将按钮的 OnClientClick 方法分配给 JS 弹出代码,而是使用 RegisterStartupScript 方法将该代码设置为在页面重新加载时运行。

此页面有一些很好的示例:http://dotnetslackers.com/articles/aspnet/JavaScript_with_ASP_NET_2_0_Pages_Part1.aspx

关于c# - ASP.NET 计算框数,然后从同一按钮执行弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859681/

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