2013-05-05 36 views
0

我已經在gridview中將一些文本轉換爲超鏈接。在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>";    
}  

我想從超鏈接中獲取文本,當點擊並存儲在會話變量中時。 任何人都可以幫助我做到這一點?

在此先感謝。

回答

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中的鏈接,並做同樣的阿賈克斯。

+0

感謝您的回覆。您能否告訴我文本存儲在哪裏? – Shanna 2013-05-05 10:35:46

+0

@SandraDsouza沒有存儲在任何地方,只是通過url作爲參數傳遞,當你調用'Service.aspx' – Aristos 2013-05-05 10:41:38

+0

抱歉再次問你時,你需要將它添加到會話中。會話[ 「HYP」] = ??。我不熟悉你所提供的代碼。非常感謝你的幫助 – Shanna 2013-05-05 10:47:12

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

} }

或者,如果你不改變你的邏輯意味着你不採取鏈接按鈕,而不是「一」,那麼你可以得到價值是由jQuery的客戶端,並設置爲隱藏字段並在服務器端訪問或使ajax調用在服務器端發送值。

對於客戶端獲取值使用Jquery。請參考此代碼。

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

     }); 
+0

是不是說jQuery的任何地方。 – Aristos 2013-05-05 11:02:40