我只从ItemID中的querystring中获取gridview。但是我想在querystring中显示链接。

gridview属性:


DataNavigateUrlFieldsItemIDLink
DataNavigateUrlFormatStringOpenLink.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 queryStringsthis example

关于c# - Datagridview多查询字符串问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11115299/

10-11 06:32