C# ASP.NET计数框,然后从同一按钮执行弹出窗口
好的,我希望我能解释得足够清楚 我的页面上有一个或多个第三方向上/向下微调器+文本框控件,它们是我无法更改源的黑框 我希望用户更改UpDownControl内容以选择数量,然后单击日历按钮,该按钮将:C# ASP.NET计数框,然后从同一按钮执行弹出窗口,c#,javascript,asp.net,C#,Javascript,Asp.net,好的,我希望我能解释得足够清楚 我的页面上有一个或多个第三方向上/向下微调器+文本框控件,它们是我无法更改源的黑框 我希望用户更改UpDownControl内容以选择数量,然后单击日历按钮,该按钮将: 添加所有向上/向下框的数量 调用javascript弹出窗口以在url“…calendar.asp?qty=5”中显示包含步骤1中的计数的日历 我的问题是让这两个步骤在同一次单击中执行。就目前的情况而言,我可以点击按钮一次,它就会计数 这些项目并将它们添加到弹出字符串中,然后我必须再次单击它以实际
<asp:ImageButton ID="btnPrepCal" runat="server" Text="PrepCal" OnClick="btnPrepCal_Click" ImageUrl="~/images/Calendar.gif"/>
}
我对.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());
Type cstype=this.GetType();
ClientScriptManager cs=Page.ClientScript;
StringBuilder cstext1=新的StringBuilder();
cstext1.Append(“+popup+”);
RegisterStartupScript(cstype,“PopupCalendar”,cstext1.ToString());
我相信这是在我在上面单击处理程序底部附近设置了popup的值之后添加的,删除了OnClientClick部分,对吗
点击按钮后,该弹出窗口是否应重新加载页面上的其他窗口?(我讨厌做一个新手,问一些可能很明显的问题。)使用这种方法,你可以实现你的目标。不要将按钮的OnClientClick方法分配给JS弹出代码,而是使用RegisterStartupScript方法将该代码设置为在重新加载页面时运行
本页有一些很好的例子:您可以使用该方法实现您的目标。不要将按钮的OnClientClick方法分配给JS弹出代码,而是使用RegisterStartupScript方法将该代码设置为在重新加载页面时运行
本页有一些很好的例子:肯是正确的。要添加到他的答案中并澄清代码不起作用的原因,您需要指定按钮的单击处理程序来执行弹出操作,但仅在单击按钮之后。这就是为什么您只在第二次单击后看到弹出窗口-第一次单击时处理程序不在那里。Ken是正确的。要添加到他的答案中并澄清代码不起作用的原因,您需要指定按钮的单击处理程序来执行弹出操作,但仅在单击按钮之后。这就是为什么您只在第二次单击后看到弹出窗口-第一次单击时处理程序不在那里。更新看起来是正确的。你试过了吗?我相信默认情况下,脚本会被注入页面底部(就在结束表单标记之前)。查看页面刷新后是否在HTML源代码中。如果是这样的话,可能弹出窗口被阻止了。它是一个UC,所以我希望在该控件的底部看到它。我在单击时得到刷新,但在视图源中没有它的迹象。我找到了它!如果它位于用户控件中,则需要使用ScriptManager.RegisterStartupScript调用它,并对参数进行一些轻微更改。它起作用了!非常感谢你的帮助和马特的帮助!更新看起来是正确的。你试过了吗?我相信默认情况下,脚本会被注入页面底部(就在结束表单标记之前)。查看页面刷新后是否在HTML源代码中。如果是这样的话,可能弹出窗口被阻止了。它是一个UC,所以我希望在该控件的底部看到它。我在单击时得到刷新,但在视图源中没有它的迹象。我找到了它!如果它位于用户控件中,则需要使用ScriptManager.RegisterStartupScript调用它,并对参数进行一些轻微更改。它起作用了!非常感谢你的帮助和马特的帮助!谢谢,这对我来说是一个重要的点击。谢谢,这对我来说是一个重要的点击。
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());