Как я могу передать значение Eval из asp: Listview между страницами aspx, сохранив его на стороне сервера? - PullRequest
0 голосов
/ 10 января 2019

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

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

Когда пользователь щелкает по гиперссылке, которую я хотел бы передать значение Eval на другую веб-страницу (на стороне сервера) без использования запроса GET или POST, информация не должна быть видимой из URL-адреса из соображений безопасности.

Мне известны объекты сессий, однако я не уверен, как я могу назначить значение eval при нажатии на гиперссылку.

Я пытаюсь текст = '<% # Eval ("ID")%>' (ID) между веб-страницами.

<table>    
<td>
    <asp:HyperLink ID="HyperLink1" runat="server" 
    ImageUrl="TrackingPage.aspx">

     <asp:ImageButton ID="ImageButton1" runat="server" CssClass="ImageBtn" 
     ImageUrl="Images/TrackingImg.PNG" OnClientClick="NavigateUrl" />
                                            </asp:HyperLink>

 </td>
      </tr>
      <tr>
 <td>
      <asp:Label ID="DashboardID"  runat="server" CssClass="IDTextStyle" 
      Text='<%#Eval ("ID") %>'></asp:Label>
 </td>
</table>

Буду признателен за любые предложения или дальнейшее чтение.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 10 января 2019

Я бы порекомендовал вам отредактировать кнопку изображения на <asp:ImageButton ID="ImageButton1" runat="server" CssClass="ImageBtn" ImageUrl="Images/TrackingImg.PNG" OnClick="ImageButton1_Click" CommandArgument='<%#Eval ("ID") %>'/>. Затем вы можете сохранить идентификатор в Session следующим образом.

protected void ImmageButton1_Click(object sender, EventArgs e)
{
    var dashboardID = ((ImageButton)sender).CommandArgument;
    Session["DashboardID"] = dashboardID;
    // Logic to redirect to another page
}
...