0

我已将一些文本转换为 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>";            
}      

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

提前致谢。

4

2 回答 2

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.aspxPage_Load添加

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

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

于 2013-05-05T10:25:13.223 回答
0

嘿,如果你想从服务器端代码做,那么你必须将“”更改为服务器链接按钮控件,那么只有你可以在 Grid Row Command 事件上获取链接代码。请参考此代码以获取链接值。

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();

        });
于 2013-05-05T10:45:27.660 回答