获取在列表视图中单击的超链接的文本属性

本文关键字:超链接 文本 属性 单击 列表 视图 获取 | 更新日期: 2023-09-27 18:32:04

项目列表(超链接)显示在查询检索的列表视图中。单击后,它会重定向到另一个页面,我需要在其中使用其名称获取该项目的数据,即该项目(超链接)的文本。如何访问所单击项目的文本属性(名称)?

获取在列表视图中单击的超链接的文本属性

如果您确实单击了重定向到另一个页面的超链接,则无法获取该信息。

执行此操作的唯一方法是在查询字符串

中包含所需的信息,并在下一页上解析查询字符串。

但是,如果您要将表单发布到另一个页面,并且您的超链接实际上是输入,则您的信息将在帖子数据中可用。

如果超链接实际上是服务器控件,则有很多可能性。

查看一些代码可能会有所帮助。

好的,如果这是你的代码:

<td> 
    <asp:Hyperlink ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' NavigateUrl="~/anotherpage.aspx"/> 
</td>

您可以做一些事情。首先,您可以将asp:Hyperlink更改为asp:LinkButton添加点击事件并移除NavigateUrl属性:

<td> 
    <asp:LinkButton ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' OnClick="NameLabel_Click"/> 
</td>    

现在,使用事件处理程序执行所需的操作:

    //Use querystring
    protected void NameLabel_Click(object sender, EventArgs e)
    {
        var link = sender as LinkButton;
        Response.Redirect(String.Format("anotherpage.aspx?name={0}", link.Text));
    }
    //Use session
    protected void NameLabel_Click(object sender, EventArgs e)
    {
        var link = sender as LinkButton;
        Session["name"] = link.Text;
        Response.Redirect("anotherpage.aspx?");
    }

然后,在着陆页Page_Load的情况下,您可以执行以下操作:

//Session
var name = Session["name"];
//Querystring
var name = Request.QueryString["name"];