размещение на одной странице со строкой запроса ASP.NET - PullRequest
2 голосов
/ 19 июля 2011

Моя проблема в том, что Page_load срабатывает перед любым событием нажатия кнопки на странице. Скажем, если я хочу отправить обратно на ту же страницу и перенести некоторые данные в строку запроса, то на page_Load прочитайте эти данные и заполните gridview в зависимости от значения в строке запроса (details.aspx => details.aspx? Id = 2).

Как я могу это сделать? Спасибо!

Ответы [ 3 ]

4 голосов
/ 19 июля 2011
private void Page_Load()
{
    if (IsPostBack)
    {
        // DO what you need to do from the postback here.
    }
}

UPDATE:

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

  if(!String.IsNullOrEmpty(Convert.ToString(Request.QueryString["myQueryParam"])))
  {


  }
3 голосов
/ 19 июля 2011

Коллекция Request.Form.Keys содержит идентификатор кнопки, вызвавшей обратную передачу.По сути, вы можете использовать это, чтобы обнаружить кнопку, на которую нажали.Либо используйте элемент управления гиперссылкой ASP и поместите URL-адрес строки запроса в свойство NavgateUrl .(если на странице сведений не требуется больше данных для обратной передачи)

, если вы делаете привязку данных, что-то вроде этого будет работать

<asp:HyperLink ID=”linkTest1” runat=”server” NavigateUrl='<%# Eval(“ColumnName”, “Details.aspx?ID={0}”)' %>

Или вы можете установить идентификатор из кода, например, вот как

linkTest.NavigateUrl = "Details.aspx?ID=" + IdVariable;

лучше, чем делать response.redirect

0 голосов
/ 13 января 2015

Кажется, он просто спросил, как он может перенаправить на ту же страницу со строкой запроса. Это немного поздно, но я удивлен, почему никто не упомянул следующее:

 void Page_Load( ... )
    {
        if (!Page.IsPostBack)
        {                
          Response.Redirect("Details.aspx?id=2");
        }
    }

Конечно, я только что написал URL перенаправления на основе вашего объяснения. Вы можете установить этот URL и строку запроса программно.

Надеюсь, это поможет другим.

...