3

我只得到ItemID来自querystringin 的 gridview内容。但我想在中显示链接querystring

gridview特性:

  • DataNavigateUrlFields: ItemID, Link.
  • DataNavigateUrlFormatString: OpenLink.aspx?itemid={0}&link={1}.

ItemID是表的pk和自动生成的字段Item,只要将数据保存在数据库中,它就会升级。

Linkcolumn 是 Item Table 中该数据的 http 链接,它是 中的超链接模板,gridview它显示 中的数据标题hyperlinkfield

我的主要目标是获取 的值ItemID和链接,querystring以便我可以将其显示到另一个 .aspx 页面。

4

2 回答 2

2

我只是做了一个快速演示并尝试了你描述的内容。显然HyperLink 列无法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()));
}

结合...

ASPX 页面设计视图

结果是 ...

ASPX 页面的 Chrome 视图

如您所见,您所描述的行为发生在仅使用DataNavigateUrlXXX时。上面几行你可以看到我的代码。

无论如何,请注意任何类型的 queryString 操作,并在 showItem.aspx检查您给定的queryString值。您可以查看保护 queryStrings此示例

于 2012-06-20T09:08:30.867 回答
0

我为我的一个项目做了类似的事情。代码如下。我希望它有所帮助。

<asp:TemplateField>
  <ItemTemplate>
    <asp:HyperLink ID="lnkViewRequest" runat="server" NavigateUrl='<%# "./ViewRequest.aspx?Database=" & Request.QueryString("Database") & "&RequestNumber=" & Eval("Request") %>' Text="View"></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateField>

在这里,我使用了从 QueryString 传入的值,然后从 gridrow 添加了一个值,以将第二个查询字符串添加到传出 URL。

于 2012-06-20T18:32:58.310 回答