0

我想通过gridview中的超链接将数据从数据库列传递到另一个页面,我想传递的数据只是一堆文本。这是我的代码

<asp:HyperLinkField DataTextField="FullText" 
        DataTextFormatString="View Text" NavigateUrl="~/Abstract.aspx" 
        Target="_blank" />

这似乎可以打开正确的页面,但我不确定如何查看新页面上的文本,大多数帮助主题告诉你如何将数据传递到新的网格视图,但我只想查看页面或框内的数据或任何可行的方法。

谢谢

4

4 回答 4

4

如果我的理解正确,您只想将作为查询字符串传递的文本显示到新页面,如果正确,只需读取查询字符串并将其显示在标签中。

为了使它起作用,您需要在网格内的链接中指定查询字符串,您的链接必须看起来像;

~/Abstract.aspx?d=your+text

在您的数据网格中:

    <asp:TemplateColumn>
        <ItemTemplate>
            <asp:HyperLink
                NavigateUrl='<%# "~/Abstract.aspx?d=" + HttpUtility.UrlEncode(DataBinder.Eval(Container, "DataItem.Id").ToString()) %>' 
                runat="server"
                Text="Product" />
        </ItemTemplate>
    </asp:TemplateColumn>

在目标页面中,您将拥有如下内容:

string text = string.Empty;
if (this.Request.QueryString["d"] == null)
   text = "Not found";
else
   text = Server.UrlDecode(this.Request.QueryString["d"]);

// encode the text to avoid XSS (cross-site scripting)
this.myLabel.Text = Server.HtmlEncode(text);
于 2012-06-14T19:27:37.257 回答
2

在网格上

<asp:HyperLinkField DataTextField="FullText" 
    DataTextFormatString="View Text" 
    NavigateUrl='<%# "~/Abstract.aspx?ft=" +  System.Web.HttpUtility.UrlEncode(Eval("FullText").ToString() %>'
    Target="_blank" />

在您要阅读的参数的页面上,您将拥有

string fullText = Request.QueryString["ft"];
if (string.IsNullOrEmpty(fullText))
{
    fullText = HttpUtility.UrlDecode(fullText);
}
于 2012-06-14T19:31:14.680 回答
0

您可能希望通过查询字符串传递一个关键参数来提取您想要查看的数据。

如果这不是您想要的,请让您的问题更具解释性。

于 2012-06-14T19:29:33.887 回答
0

您可以在会话或查询字符串 ( Abstract.aspx?textid=1) 中传递 ID。在页面加载事件中读取此 id 从数据库中获取数据并显示。

于 2012-06-14T19:30:00.470 回答