代码之家  ›  专栏  ›  技术社区  ›  hud

加密GridView中DataNavigateUrlFormatString的查询字符串

  •  0
  • hud  · 技术社区  · 6 年前

    我想在这里加密通过使用 asp.net Gridview .

    下面是我的代码

    <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:HyperLinkField DataTextField="CHANGEREQUESTNUMBER" ItemStyle-CssClass="GridRow"
                            HeaderText="Change Request No" DataNavigateUrlFields="CHANGEREQUESTID" DataNavigateUrlFormatString="ChangeRequestDetails.aspx?ID={0}"
                            Text="CR No" Target="_blank" ItemStyle-Width="11%" />
                        <asp:BoundField DataField="DESCRIPTION" ItemStyle-CssClass="GridRow" HeaderText="Description"
                            ReadOnly="True" ItemStyle-Width="15%" />
                        <asp:BoundField DataField="STATENAME" ItemStyle-CssClass="GridRow" HeaderText="State"
                            ReadOnly="True" SortExpression="State" ItemStyle-Width="12%" />
                        <asp:BoundField DataField="CITYNAME" ItemStyle-CssClass="GridRow" HeaderText="City"
                            ReadOnly="True" SortExpression="City" ItemStyle-Width="7%" />
                        <asp:BoundField DataField="CATEGORY" ItemStyle-CssClass="GridRow" HeaderText="Category"
                            ReadOnly="True" SortExpression="Category" ItemStyle-Width="7%" />
                        <asp:BoundField DataField="CHANGETYPE" ItemStyle-CssClass="GridRow" HeaderText="Type"
                            ReadOnly="True" SortExpression="Type" ItemStyle-Width="15%" />
                        <asp:BoundField DataField="OPENCLOSED" ItemStyle-CssClass="GridRow" HeaderText="Open/ Closed"
                            ReadOnly="True" ItemStyle-Width="4%" />
                        <asp:BoundField DataField="STATUS" ItemStyle-CssClass="GridRow" HeaderText="Detailed Status"
                            ReadOnly="True" ItemStyle-Width="15%" />
                        <asp:BoundField DataField="CREATEDON" ItemStyle-CssClass="GridRow" HeaderText="Creation Date"
                            ReadOnly="True" DataFormatString="{0:dd-MM-yyyy}" ItemStyle-Width="7%" />
                        <asp:BoundField DataField="LASTMODIFIEDON" ItemStyle-CssClass="GridRow" HeaderText="Last Modified Date"
                            ReadOnly="True" DataFormatString="{0:dd-MM-yyyy}" ItemStyle-Width="7%" />
                    </Columns>
                    <HeaderStyle BackColor="#C3C1C1" />
                    <RowStyle HorizontalAlign="Left" />
                    <PagerStyle CssClass="pagergrid" />
                </asp:GridView>
    

    我想加密 DataNavigateUrlFormatString="ChangeRequestDetails.aspx?ID={0}"

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tetsuya Yamamoto    6 年前

    首先,确保已经创建了一个返回 string 用于加密/解密。应该可以从页面标记中的数据绑定语法访问该方法:

    public string ParseRequest(string id)
    {
        // perform encryption/decryption here
    }
    

    HyperLinkField Eval() TemplateField HyperLink 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>
    

    <asp:HyperLink ID="CRNo" runat="server" 
         NavigateUrl='<%# this.ResolveUrl(ParseRequest(Eval("REQUESTURL").ToString())) %>' Text="CR No" Target="_blank" ...>
    </asp:HyperLink>