网格视图中的超链接

发布于 2024-11-09 08:59:01 字数 208 浏览 0 评论 0原文

我在 gridview 中有一个超链接,我希望用户单击它,它将他们定向到特定页面,并且还传递 gridview 的第一个字段(ID)或将其保留在会话中,最好是在会话中。

该链接只是静态文本,因此无论他们单击什么记录,我都希望将他们带到同一页面,但该记录 ID 可用。

只是不知道如何将其添加到超链接的 NavigateUrl 中。

任何提示表示赞赏,谢谢

I have a hyperlink in a gridview which I want users to click on and it directs them to a particular page and also either passes in the first field of the gridview (the ID) or holds it in session, preferebly in session.

The link is just static text so no matter what record they click on i want to get them to the same page, but with that records ID available.

Just not sure how to add this to the NavigateUrl of the hyperlink.

ANy hints appreciated, thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无边思念无边月 2024-11-16 08:59:01

您可以轻松地在 GridView 标记中生成 URL,而无需借助代码。您需要做的是:

  1. 在 DataNavigateUrlFields 中
    你的 HyperLinkField 的属性,把
    包含的列的名称
    你的身份证号。

  2. DataNavigateUrlFormatString,将
    页面的路径,加上
    下一页将要查询的字符串
    用于获取 id,但是在哪里
    值应该消失,改用 {0}

例如,

<asp:Hyperlink DataNavigateUrlFields="ProductId" DataNavigateUrlFormatString="details.aspx?id={0} />

当控件在运行时呈现时,您会发现对于每一行,{0} 都被 ProductId 列的值替换。

请参阅 String.FormatDataNavigateUrlFormatString 了解更多详细信息。

You can easily generate the URL in the markup of your GridView without resorting to code. What you need to do is:

  1. In the DataNavigateUrlFields
    property of your HyperLinkField, put
    the name of the column that contains
    your id.
  2. In the
    DataNavigateUrlFormatString, put the
    path to your page, plus the
    querystring that the next page will
    use to get the id, but where the
    value should go, put {0} instead.

e.g.

<asp:Hyperlink DataNavigateUrlFields="ProductId" DataNavigateUrlFormatString="details.aspx?id={0} />

When the control is rendered at runtime, you will find that for each row, the {0} is replaced by the value of the ProductId column.

See String.Format and DataNavigateUrlFormatString for more details.

奢欲 2024-11-16 08:59:01
  1. 您可以处理 Row_DataBound 事件来查找超链接控件并更新 NavigateUrl 属性。
  2. 您可以添加简单的 html 控件文本到链接,它将生成相同的 html。
  1. You can handle the Row_DataBound event to find the hyperlink control and update the NavigateUrl property.
  2. You can add simple html control Text to link, it will produce same html.
优雅的叶子 2024-11-16 08:59:01

使用 HyperLink 控件,然后为 RowDataBound 事件编写一个事件处理函数,如下所示:

protected void OnRowDataBound(object source, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hyperLink = e.Row.FindControl("hyperLinkID") as HyperLink;

        // example, adjust this to your needs.
        hyperLink.NavigateUrl = "~/detail.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "ID");     
    }
}

Use HyperLink control and then write an event handler function for RowDataBound event, like this:

protected void OnRowDataBound(object source, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hyperLink = e.Row.FindControl("hyperLinkID") as HyperLink;

        // example, adjust this to your needs.
        hyperLink.NavigateUrl = "~/detail.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "ID");     
    }
}
风铃鹿 2024-11-16 08:59:01

不知道为什么你采取了服务器控制而不是 HTML 标签。

有两种方法可以做到这一点。

1)如果是静态链接,只需在页面名称前面加上前缀并在标记中附加 id。
例如

<a  href='myPage.aspx<%#Eval("YourID")%>'><strong>Click me to navigate</strong></a>

2)给 a 标签一些 id 并使其在服务器上运行,处理数据绑定事件并将值绑定到它。

 protected void MyGridview_ItemDataBound(object sender, ListViewItemEventArgs e)
    {


 HtmlAnchor AncImage = e.Item.FindControl("AncImage") as HtmlAnchor;
AncImage.href="myPage.aspx"/id=" + DataBinder.Eval(e.Row.DataItem, "ID"); ;
//the id is the value that you want to append for redirection
}

Not sure why you have taken server control instead of tag of HTML.

two ways you can do it.

1)if it is an static link just prefix the page name and append the id in mark up.
for ex

<a  href='myPage.aspx<%#Eval("YourID")%>'><strong>Click me to navigate</strong></a>

2)give some id to the a tag and make it runat server handle the data bound event and bind the value to it.

 protected void MyGridview_ItemDataBound(object sender, ListViewItemEventArgs e)
    {


 HtmlAnchor AncImage = e.Item.FindControl("AncImage") as HtmlAnchor;
AncImage.href="myPage.aspx"/id=" + DataBinder.Eval(e.Row.DataItem, "ID"); ;
//the id is the value that you want to append for redirection
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文