it-swarm.com.ru

Принудительный постбэк

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

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

15
shaun.breach

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

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

9
mamoo

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

Response.Redirect(Request.RawUrl);
8
live-love

Simpler:

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);
6
devilcius

Здесь решение от 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());
2
Undercover1989

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

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

1
Mihai

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

1
Andy Rose

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

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

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

0
Shadow Wizard

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

0
user3631880