2012-04-23 79 views
0

設計時,我有一個帶有標籤的Datalist。當它加載時會有10個標籤(來自列表的數據源有10個值類型int)。我想要獲得任何我點擊的標籤的價值。我認爲我必須解決2個問題: 1.找到點擊的控件(標籤內datalist)。 2.獲取它的價值。通過Javascript獲取在datalist中點擊的項目的價值

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<int> list = new List<int>(); 
     for (int i = 0; i < 10; i++) 
     { 
      list.Add(i); 

     } 
     int a=1; 

     DataList1.DataSource = list; 
     DataList1.DataBind(); 
     foreach (DataListItem item in DataList1.Items) 
     { 
      ((Label)item.FindControl("Label1")).Text = a.ToString(); 
      if ((Convert.ToInt32(((Label)item.FindControl("Label1")).Text)) % 2 != 0) 
      { 
       ((Label)item.FindControl("Label1")).BackColor = System.Drawing.Color.Gray; 
      } 
      ((Label)item.FindControl("Label1")).Attributes.Add("onclick", "run();"); 
      a++; 
     } 

這是我的run()函數

function run() { 

      $("#Panel1").scrollTop(100*gt1); 

     } 

在這裏,我想GT1獲得標籤的值點擊。

感謝您的幫助(SR我的英語)

回答

0

試試這樣...

,同時結合使用關鍵字這一點,JavaScript事件,我們將通過標籤的當前目標。在服務器端

((Label)item.FindControl("Label1")).Attributes.Add("onclick", "run(this);"); 

在客戶端,我們必須更改定義以接收從服務器端傳遞的參數。在我們的例子中,參數名稱是lbl。

function run(lbl) 
{ 
alert(lbl.innerText); 
} 

這是一篇很好的文章會給你網格視圖的很好的理解here

+0

我曾嘗試過,但只看到.valueOf()無法看到.value,它不工作 – minhminh265 2012-04-23 05:35:53

+0

嘗試.innerText而不是價值,並告訴我它是否工作 – Adil 2012-04-23 06:02:36

+0

嗨Adil,它出現一個空白彈出窗口),我該怎麼做 – minhminh265 2012-04-23 06:14:30

0

您可以將DataList控件使用CSS類中的任何項目單擊事件更優雅,而不是每個項目定義onclick事件。

例如標籤具有以下css屬性=「itm」;

$(document).on('click', '.itm', function (e) { 
    run(this); 
}); 
+0

sr我是初學者,你可以說清楚:) – minhminh265 2012-04-23 05:37:44

0

我發現如何解決我的問題:
先加:

串GT =((標籤)item1.FindControl( 「lblstt」))文本;

之後:

((標籤)item2.FindControl( 「lblCauHoi」))Attributes.Add( 「點擊」, 「運行(」 + GT + 「);」) ;

希望它有用。

相關問題