Способ вызвать функцию на стороне сервера из события onclick в gridview? - PullRequest
0 голосов
/ 26 марта 2011

Мне не нравится, когда в некоторых случаях в моем виде сетки отображается кнопка «Выбрать». Я бы предпочел использовать событие javascript onclick для запуска функции, но я бы предпочел не выполнять обратную передачу, используя ClientID в строке запроса для выполнения этого. Вызываемая функция (LoadProjects) просто скрывает текущую панель с этим видом сетки и отображает еще одну после привязки данных этого второго вида сетки.

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    ClientID = Int16.Parse(GridView1.SelectedValue.ToString());
    LoadProjects(ClientID);
}


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes.Add("onclick", "location='somepage.aspx?ClientID=" + e.Row.Cells[1].Text + "'");
        e.Row.Attributes.Add("style", "cursor:pointer;");
     }
    if (e.Row.RowType == DataControlRowType.Header)
    {
    }
    e.Row.Cells[1].Visible = false;
}

Есть ли способ вызвать функцию LoadProjects () из события onclick без использования строк запроса?

Ответы [ 2 ]

1 голос
/ 26 марта 2011

Да, вы можете использовать функцию JS __doPostBack для выполнения обратной отправки вручную, см. эту статью для получения дополнительной информации и примеров.

1 голос
/ 26 марта 2011

попробуйте использовать сессию для сохранения значения, если не хотите использовать строку запроса. но остальное остается тем же ..

вы не можете вызывать серверный метод без обратной передачи, и даже это происходит только в какое-то событие.

Лучший способ избежать обратной передачи - использовать ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...