项目列表(超链接)显示在由查询检索到的列表视图中。在点击时,它会重定向到另一个页面,我需要使用它的名称来获取该项目的数据,该名称是该项目的文本(超链接)。如何访问被点击项目的文本属性(名称)?
问问题
1641 次
1 回答
3
如果您确实单击了重定向到另一个页面的超链接,则无法获取该信息。
唯一的方法是在查询字符串中包含您需要的信息,并在下一页上解析查询字符串。
但是,如果您将表单发布到另一个页面,并且您的超链接实际上是一个输入,则您的信息将在发布数据中可用。
如果您的超链接实际上是一个服务器控件,则有很多可能性。
查看一些代码可能会有所帮助。
好的,如果这是您的代码:
<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"];
于 2012-04-23T16:41:57.997 回答