我只从ItemID
中的querystring
中获取gridview
。但是我想在querystring
中显示链接。gridview
属性:DataNavigateUrlFields
:ItemID
,Link
。DataNavigateUrlFormatString
:OpenLink.aspx?itemid={0}&link={1}
。
这里ItemID
是pk,是Item
表的自动生成的字段,只要将数据保存在数据库中,它就会升级。Link
列是项目表中数据的http链接,并且是gridview
中的超链接模板,它在hyperlinkfield
中显示数据的标题。
我的主要目的是获取ItemID
的值并从querystring
链接,以便可以将其显示到另一个.aspx页。
最佳答案
我只是做了一个快速演示,并尝试了您的描述。显然,“超链接”列无法对来自DataNavigateUrlFields的给定链接进行编码。所以我创建了一个templateField和一个自定义方法,
// code behind
public string createUrl(object itemName, object link)
{
return string.Format("showItem.aspx?itemID={0}&link={1}",
itemName.ToString(),
HttpUtility.UrlEncode(link.ToString()));
}
与...结合
结果是 ...
如您所见,仅使用DataNavigateUrlXXX时,就会发生您描述的行为。您可以在上方几行看到我的代码。
无论如何,请注意任何一种queryString操作,并在showItem.aspx中检查给定的queryString值。您可以看看securing queryStrings或this example
关于c# - Datagridview多查询字符串问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11115299/