【发布时间】:2013-02-10 17:38:34
【问题描述】:
我有一个页面,其中一个大 GridView 和一个 HyperLinkfield 绑定到其中一个列,带有两个参数,格式如下:
<asp:HyperLinkField DataNavigateUrlFields="id,nome" DataNavigateUrlFormatString="~/adm/Clipping/Publicidade/Cadastro/ValorPrograma.aspx?programa={0}&nome={1}" HeaderText="Valores" InsertVisible="False" NavigateUrl="~/adm/Clipping/Publicidade/Cadastro/ValorPrograma.aspx" Text="Ajustar valores">
<ItemStyle ForeColor="#339933" />
</asp:HyperLinkField>
字符串DataNavigateUrlFormatString="~/adm/Clipping/Publicidade/Cadastro/ValorPrograma.aspx?programa={0}&amp;nome={1} 被DataNavigateUrlFields="id,nome" 替换。 一切都很好...对于某些行。另一方面,值不会被替换,并且 URL 不完整。
所以我去数据库检查是否有一些数据不一致,并从GridView 上通常被替换的字段和未被替换的另一个字段中提取数据。
有什么想法吗?
【问题讨论】:
-
UrlEncoding 数据库字符串怎么样?
-
有没有办法在网格本身内部做到这一点,还是我需要一个事件挂钩?
-
但我看不出这种行为的任何相关原因。
-
我认为您需要在 RowDataBound 事件中执行此操作。至于这样做的原因,我的猜测是,ç 和/或õ 是 URL 的无效字符,并导致整个字符串被遗漏。另见stackoverflow.com/questions/1386262/…
-
@Hanno 有趣的是,从我展示的数据库图片来看,记录 #1 是有问题的记录,而带有 ç 和 õ 的记录很好。