2010-02-16 3 views
0

Я ищу лучшее решение для своей проблемы. В настоящее время я использую gridview asp.net со ссылкой в ​​первом столбце, а идентификатор - к элементу, к которому он относится.Я хочу построить Href, используя onclick Event. Добавить параметры из скрытых полей на страницу Href

Детали HREF = .../page.aspx? ID = 25

У меня есть 3 скрытых полей, которые я хотел бы взять с собой на следующей странице.

Я хочу, чтобы URL-адрес выглядел примерно так. Детали HREF = .../page.aspx? ID = 25 & HDN1 = 3 & HDN2 = 5 & HDN3 = 76

Я могу установить значение скрытого текста. Мне нужно получить значения и добавить их в URL-адрес в ссылке Подробнее. (Onclick?). Каков наилучший способ сделать это?

+0

эти скрытые поля часть коллекции вы Databinding в GridView к? – ChadT

+0

Нет, они устанавливаются на стороне клиента. Текст быстрого поиска, направление tablesorter и т. Д. –

ответ

1

Если эти скрытые поля являются частью коллекции источников привязки данных, вы можете передать несколько параметров столбцу GridView HyperLinkField. например:

<asp:HyperLinkField DataNavigateUrlFields="id, field1, field2" DataNavigateUrlFormatString="/page.aspx?id={0}&hdn1={1}&hdn3={2}" /> 

Edit:

OK, если это на стороне клиента, то вы должны будете сделать это с помощью JavaScript.

Я хотел бы добавить обработчик OnClick для каждой из ссылок:

<a href="details.aspx?id=123" onclick="detailsHandler(this.href); return false;" /> 

затем Javascript функции для обработки редирект:

function detailsHandler(href) { 
    var hiddenField = document.getElementById('eleID').value; 
    //get any other hidden fields and append them. 
    href = href + "&amp;hnd1=" + hiddenfield; 
    //then redirect to the revised url 
    window.location = href; 
} 
+0

Как это добавить к каждой ссылке на странице? Gridview жалуется, что он не имеет открытое свойство с именем OnClick –

+0

$ ('ItemLink.') Нажмите (функция() { \t detailsHandler (this.href); возвращение ложным; }). –

+0

Если вы используете столбец GridView HyperLinkField, то он не имеет никаких свойств события. Вы можете сделать это программно (например, подключиться к событию OnRowDataBound gridview и изменить каждую строку по мере их создания), или что бы я сделал, вместо этого используйте TemplateField, а затем просто используйте в нем обычный якорный тэг. (Или использовать метод jQuery, упомянутый выше). – ChadT

Смежные вопросы