我的代码隐藏文件中有一个公共字符串,当我准备好它时,我打算从javascript调用它。但是,由于它并不真正与特定事件绑定,因此每次页面加载时它都会触发。我将其设置为仅触发if(IsPostBack)但我正在使用的控件(由于许多其他原因)是输入类型=按钮,因此页面从不真正做回发意味着代码永远不会触发。
我如何拥有以下内容:
public string dontExecuteYet()
{
Do some server side stuff
Then redirect on delay
return string
}
在我的Code Behind中,直到我告诉它才会运行?
答案 0 :(得分:0)
您可以使用Page方法和AJAX这样做。
http://www.geekzilla.co.uk/View7B75C93E-C8C9-4576-972B-2C3138DFC671.htm
该代码仅在您使用javascript
调用时执行...
...
实际上你也可以通过添加onclick =“javascript:__ doPostBack('eventargument','eventvalue')强制在输入按钮上回发;” (如果你对它有控制权)
答案 1 :(得分:0)
对我来说这是ASP.Net Ajax + WebMethod。
参见例子:
答案 2 :(得分:0)
如果你需要访问代码,最终(假设在初始的Page_Load之后),你不能只做这样的事情:
if (!Page.IsPostBack)
{
this.MyPublicString = "Hello World!";
}
在你的JavaScript中:
var publicString = "<%= this.MyPublicString %>";
答案 3 :(得分:0)
我同意你可以在这里使用AJAX,但是如果你不需要它是异步的,只需使用一个查询字符串,如下所示:
if(Request.QueryString["execute"] == "yes")
{
dontExecuteYet();
}
并且在javascript中,您只需要在按下按钮时触发此代码:
window.location = "yoursite.com?execute=yes";