0

我的代码隐藏文件中有一个公共字符串,我打算在准备好时从 javascript 调用它。但是,由于它并没有真正与特定事件相关联,因此它只是在每次页面加载时触发。我会将其设置为仅触发 if(IsPostBack) 但我正在使用的控件(出于许多其他原因)是输入类型 = 按钮,因此页面永远不会真正回发,这意味着代码永远不会触发。

我怎么会有类似的东西:

public string dontExecuteYet()
 {
  Do some server side stuff
  Then redirect on delay
  return string
  }

在我的代码后面,直到我告诉它它才会运行?

4

4 回答 4

0

我同意您可以在此使用 AJAX,但如果您不需要它是异步的,只需使用查询字符串,如下所示:

if(Request.QueryString["execute"] == "yes")
{
     dontExecuteYet();
}

在 javascript 中,您只需要在按下按钮时触发此代码:

window.location = "yoursite.com?execute=yes";
于 2011-08-12T23:42:39.670 回答
0

您可以像这样使用 Page 方法和 AJAX 来做到这一点。

http://www.geekzilla.co.uk/View7B75C93E-C8C9-4576-972B-2C3138DFC671.htm

该代码仅在您使用 javascript 调用时才会执行

……

……

实际上,您还可以通过添加 onclick="javascript:__doPostBack('eventargument','eventvalue');" 在输入按钮上强制回发 (如果你能控制它)

于 2011-08-12T22:32:18.807 回答
0

如果您最终需要访问代码(假设在初始 Page_Load 之后),您不能只执行以下操作:

if (!Page.IsPostBack)
{
    this.MyPublicString = "Hello World!";
}

在你的 JavaScript 中:

var publicString = "<%= this.MyPublicString %>";
于 2011-08-12T23:30:51.173 回答