Работа с "onclick" на стороне сервера, динамически создаваемая TableRow - PullRequest
3 голосов
/ 26 ноября 2008

Я динамически создаю таблицу, в которой я хочу иметь кликабельные строки. Когда пользователь нажимает на одну из строк, я хочу перенаправить на страницу, относящуюся к элементу этой строки. Мой вопрос заключается в том, как на стороне сервера я могу связать событие «onclick» с процедурой, которая затем позволит мне создать URL-адрес на основе некоторых данных, включенных в строку, по которой они щелкнули?

например, я бы хотел сделать это по клику:

Response.Redirect("SomePage.aspx?" itemType + "&" + COLUMN1VALUE);

где COLUMN1VALUE будет первым столбцом в строке, по которой был выполнен щелчок.

Ответы [ 3 ]

2 голосов
/ 26 ноября 2008

Похоже, ваша настоящая цель - просто отобразить / отредактировать строку на другой странице. Если это так, вы можете просто добавить обработчик событий javascript в строку таблицы при ее создании.

<tr onclick="window.location='DetailPage.aspx?id=<%= IdFromDb %>'">
    <!-- etc......-->
</tr>

Если вы используете GridView для создания таблицы, вы можете добавить это в событие RowDataBound:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

    string OnClickCmd = "window.location='DetailPage.aspx?id=";

    if (e.Row.RowType == DataControlRowType.DataRow)

    {

        OnClickCmd += DataBinder.Eval(e.Row.DataItem, "IdFromDb").ToString() + "'";

        e.Row.Attributes.Add("onclick", OnClickCmd);

    }
}

Если вам не нужно что-то делать в обратной передаче, нет необходимости перенаправлять. Кроме того, вы можете просто создать гиперссылку, когда создаете строку, устраняя необходимость в javascript, вам не нужен полный опыт щелчка строк.

1 голос
/ 26 ноября 2008

Я бы построил ссылку в таблице как фактический тег привязки к вашему SomePage.aspx (пока вы строите свою таблицу, вы должны знать, какой будет строка запроса для каждой строки таблицы), а не на стороне сервера. элемент управления, который перенаправляет при обратной передаче

0 голосов
/ 26 ноября 2008

В вашем обработчике событий click вы отправляете отправителя как кнопку, затем получаете его родителей, пока не доберетесь до TableRow, затем выполняете FindControl (), чтобы найти элемент управления со значением, специфичным для этой строки, и использовать его для построения URL!

Удачи!

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