我已将一些文本转换为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>";
}
我希望在点击时从超链接中获取文本并存储在会话变量中。 任何人都可以帮我这样做吗?
提前致谢。
答案 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();
});