如何引发回发?

时间:2011-07-05 21:48:55

标签: c# asp.net

我需要在c#中进行回发,我该怎么做? (它不能通过按钮或任何其他元素)只是想在条件满足时引起回发。

类似

  If(so and so)
      Postback now!
  else
      Do not post back

8 个答案:

答案 0 :(得分:5)

你的问题没有意义。

C#代码在服务器上运行,以响应回发 在回发发生之前,没有代码可以运行。

您可能需要trigger a postback in Javascript,它在浏览器中运行。

答案 1 :(得分:5)

从评论中看起来你正在使用telerik的RadTabs。您可以在选项卡控件上将AutoPostBack设置为true,以便在用户切换选项卡时强制刷新。

http://www.telerik.com/help/aspnet/tabstrip/tab_server-side%20events.html

答案 2 :(得分:3)

一些教学情境化:你试图在“第二次回发”中调用的任何代码片段,只需在你的“第一次回发”中调用它即可!

示例:

你有一个方法想要在你的“第二回发”中调用Button_Click吗?只需在你的“第一回发”中调用它:

btnSaveClick(btnSave, null);

答案 3 :(得分:3)

你总是可以做Response.Redirect(Request.RawUrl);

你要小心不要造成无休止的重定向循环。

答案 4 :(得分:1)

您无法在代码隐藏中进行回发。您的代码隐藏代码是您的回发代码。你为什么要这样做?也许我们可以帮助您完成程序逻辑

答案 5 :(得分:1)

您想再次呼叫该页面吗?您可以使用Response.Redirect

执行此操作

答案 6 :(得分:1)

要在Server代码中强制回发,请使用ClientScript.GetPostBackEventReference()生成执行回发的javascript代码。然后在调用回发javascript的事件处理程序中添加一个启动脚本。

ASPX:

// Do an empty postback that doesn't do anything.
function doPostback() {
  <%= ClientScript.GetPostBackEventReference(btnDoPostback, String.Empty) %>;
}

<asp:Button ID="btnDoPostback" runat="server" OnClick="btnDoPostback_Click" Style="display: none;" />

CS:

if (!IsPostBack) {
  ScriptManager.RegisterStartupScript(this, this.GetType(), "dopostback", "doPostback();", true);
}

protected void btnDoPostback_Click(object sender, EventArgs e)
{
}

答案 7 :(得分:0)

你的意思是你的.aspx / cshtml页面?如果是,请使用jquery's $.post

如果你真的在一个控制器中(并且你已经在响应回发而运行)那么你应该重构你的代码,这样你可以调用你想要调用的任何逻辑(通过你的'第二个帖子')您现有的位置以及其他邮政行动。