Установите NavigateUrl в событии RowDataBound

В настоящее время у меня есть сетка с колонкой гиперссылок для редактирования и удаления клиента. Мне нужно использовать гиперссылки в моем случае, но мне было интересно, как еще я могу передать другие значения на страницы, на которые я иду? Прямо сейчас я могу передать значения таблицы, но что если я хочу передать другие данные? Такие как сортировка страниц, индекс и поля поиска, используемые при возврате на страницу?

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

<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="EditLink" runat="server" Text="Edit"
  NavigateUrl='<%# "~/EditCustomer.aspx?ID=" & DataBinder.Eval(Container.DataItem, "MasterContactID")%>' />
<asp:HyperLink ID="Delete" runat="server" Text="Delete"
  NavigateUrl='<%# "~/DeleteCustomer.aspx?ID=" & DataBinder.Eval(Container.DataItem, "MasterContactID")%>' />
</ItemTemplate>
</asp:TemplateField>

1 ответ

Решение

Это зависит от того, можете ли вы изменить его на кнопку, а в случае события RowCommand вы можете сохранить некоторые ключевые данные в сеансе, а затем перенаправить. ИЛИ, вы можете поместить все в строку запроса, но если у вас есть много полей для передачи на другую страницу, я бы использовал кнопку (или кнопку ссылки), присвоив ей имя команды, в Grid_RowCommand, сохранил значения в сеансе и перенаправить, затем извлечь и удалить переменные сеанса после перенаправления.

Другие вопросы по тегам