Принудительный постбэк - PullRequest
16 голосов
/ 21 ноября 2011

Есть ли способ заставить постбэк в коде?

Я пытаюсь поднять обратную передачу из метода в коде c # моего веб-приложения asp.net.

Ответы [ 8 ]

9 голосов
/ 21 ноября 2011

Постбэк запускается после отправки формы, поэтому он связан с действием клиента ... посмотрите здесь для объяснения: ASP.NET - возможно ли запустить обратную передачу из кода сервера?

и вот для решения: http://forums.asp.net/t/928411.aspx/1

8 голосов
/ 27 февраля 2012

Вы можете попробовать перенаправить на ту же страницу.

Response.Redirect(Request.RawUrl);
6 голосов
/ 10 октября 2013

Simpler:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
2 голосов
/ 14 октября 2015

Здесь решение от http://forums.asp.net/t/928411.aspx/1, как упомянуто mamoo - на тот случай, если сайт отключитсяХорошо сработало для меня.

StringBuilder sbScript = new StringBuilder();

sbScript.Append("<script language='JavaScript' type='text/javascript'>\n");
sbScript.Append("<!--\n");
sbScript.Append(this.GetPostBackEventReference(this, "PBArg") + ";\n");
sbScript.Append("// -->\n");
sbScript.Append("</script>\n");

this.RegisterStartupScript("AutoPostBackScript", sbScript.ToString());
1 голос
/ 21 ноября 2011

Вы можете использовать элемент управления с привязкой к данным, например Repeater или ListView, повторно привязать его к списку свойств элемента управления по мере необходимости и позволить ему генерировать элементы управления динамически.В качестве альтернативы вы можете использовать Response.Redirect(".") для повторной загрузки той же страницы.

1 голос
/ 21 ноября 2011

Нет, не из кода позади. Обратная передача - это запрос, инициируемый со страницы клиента обратно к себе на сервер с использованием метода POST Http. На стороне сервера вы можете запросить перенаправление, но будет запрос Http GET.

0 голосов
/ 13 мая 2014

с помощью Server.Transfer («YourCurrentPage.aspx»); мы можем легко добиться этого, и это лучше, чем Response.Redirect (); coz Server.Transfer () спасет вас туда и обратно.

0 голосов
/ 21 ноября 2011

Вы можете вручную вызвать метод, вызванный PostBack из события Page_Load:

public void Page_Load(object sender, EventArgs e)
{
    MyPostBackMethod(sender, e);
}

Но если вы имеете в виду, можно ли для свойства Page.IsPostBack установить значение true без реальной отправки назадтогда ответ - нет.

...