今天升级一个老程序,其中有段代码感觉很奇怪,虽然是自己写的,但时间长了一时也记不得当时的想法。仔细看了看明白是为了解决URL编码问题采取的变通方法,鉴于当时的经验倒也可以理解。
问题简单描述如下:在GridView中绑定一列数据为URL链接,参数中可能会有中文字符需要进行URL编码,直接设置HyperLinkField并不会自动进行编码。
那么应该怎么办呢?
先说下以前的“笨办法”,在RowDataBound方法中,通过代码拼凑URL字串,然后赋值到相应的单元格,URL编码可以代码中实现。
这种方法使用起来没啥问题,只是现在看来不太完美,那么有没有更好的解决方案?
有!请看。
首先我们还是按HyperLinkField配置好需要生成URL的字段,然后选择“将此字段转换为TemplateField,切换到”源“,我们会看到VisualStudio自动生成的模板列,类似下面的代码:
<asp:TemplateField HeaderText="物料清单">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Navigat