在gridview中获取超链接的文本

时间:2013-05-05 10:06:13

标签: c# asp.net hyperlink

我已将一些文本转换为gridview中的超链接。

if (e.Row.Cells[3].Text == Session["uname"].ToString())
{
    e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#FFFFCC");
    e.Row.Cells[1].Text = "<a href='Service.aspx'>"+e.Row.Cells[1].Text+"</a>";            
}      

我希望在点击时从超链接中获取文本并存储在会话变量中。 任何人都可以帮我这样做吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

一个简单的诀窍是将其作为参数添加到链接中,并在您调用service.aspx页面时将其保存在会话中。

例如:

String.Format("<a href='Service.aspx?TextLink={1}'>{0}</a>"
      , e.Row.Cells[1].Text
      ,  Server.UrlEncode(e.Row.Cells[1].Text)
      );

现在service.aspx Page_Load上添加

if(!String.IsNullOrEmpty(Request.QueryString["TextLink"]))
    session["hyp"] = Request.QueryString["TextLink"];

另一种方法是使用javascript捕获链接并使用ajax执行相同的操作。

答案 1 :(得分:0)

嘿如果您想从服务器端代码执行操作,则必须将“”更改为“服务器链接”控件,然后才能获得“网格行命令”事件的链接代码。请参考此代码以获取链接值。

protected void gvNewJoineeDetails_RowCommand(object sender, GridViewCommandEventArgs e)
    {

            if (!e.CommandSource.GetType().Name.Contains("GridView"))
            {

                GridViewRow row1 = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);

                LinkButton lnkCust1 = (LinkButton)row1.FindControl("gvlnkBtnNewJoineeDetails");

} }

或者,如果你不改变你的逻辑意味着你不使用链接按钮而不是'a',那么你可以通过Jquery在客户端获得它的价值并设置为隐藏字段并在服务器端访问或进行ajax调用发送服务器端的价值。

对于客户端获取值使用Jquery。请参考此代码。

$("a").live("click", function (e) {
            var getvalue = $(this).text();

        });