Сначала убедитесь, что вы уже создали метод, который возвращает string
для целей шифрования / дешифрования. Метод должен быть доступен из синтаксиса привязки данных в разметке страницы:
public string ParseRequest(string id)
{
// perform encryption/decryption here
}
Обратите внимание, что HyperLinkField
не поддерживает привязку с помощью метода Eval()
, необходимого для процесса шифрования / дешифрования (поскольку при этом будет выдано HyperLinkField
без сообщения DataBinding ), вам необходимо используйте TemplateField
и поместите в него HyperLink
control. Затем вызовите метод шифрования / дешифрования внутри NavigateUrl
с привязкой данных:
<asp:GridView ID="gvCreatedCRList" runat="server" AutoGenerateColumns="False" CssClass="table table-bordered table-hover"
ShowHeaderWhenEmpty="True" PageSize="10" AllowPaging="true" EmptyDataText="No data to display.">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="CRNo" runat="server"
NavigateUrl='<%# this.ResolveUrl(
string.Format("ChangeRequestDetails.aspx?ID={0}", ParseRequest(Eval("CHANGEREQUESTID").ToString()))) %>'
Text="CR No" Target="_blank" ...>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<%-- other BoundField columns --%>
</Columns>
<%-- other settings --%>
</asp:GridView>
Или используйте этот способ, если вы хотите зашифровать весь URL вместе со строкой запроса:
<asp:HyperLink ID="CRNo" runat="server"
NavigateUrl='<%# this.ResolveUrl(ParseRequest(Eval("REQUESTURL").ToString())) %>' Text="CR No" Target="_blank" ...>
</asp:HyperLink>