在hyperlinkfield中,如何查询字符串转义值



我在具有DataNavigateUrlFormatString="blahblah/dostuff.aspx?id={0}"GridView中有一个超链接字段。但后来我遇到了一种情况,用{0}替换的字段中有一个加号。它不是为查询字符串转义的,所以现在看起来像是一个空格而不是加号。

我认为,如果它包括与号、等号或百分比符号,也会出现类似的问题。

Q:有什么方法可以对参数执行查询字符串转义吗?

我想我可以把它变成TemplateFieldEval。往好了说,这是混乱和丑陋的。这似乎是一个经常出现的问题。有干净的逃生方法吗?

经过一番搜索,我得出的结论是,没有简单的解决方案。您可以使用没有模板字段的Eval直接生成URL。有人建议你处理RowDataBound事件,找到正确的列并修复URL,但这对我来说似乎是一个非常丑陋的解决方案

需要大量工作的最干净的解决方案是创建一个类,其唯一目的是提供GridView(您甚至可以将其直接放在代码后面),并在代码后面对C#代码中的属性进行编码。这就像在MVC中创建一个ViewModel只是为了提供特定的视图。

最新更新