2012-04-23 14 views
0

デザイン時に、ラベル付きのデータリストがあります。ロード時には10個のラベルがあります(リストからのデータソースには10個の値の型intがあります)。私はクリックしたラベルの価値を得たい。私は2つの問題を解決しなければならないと思う: 1.クリックされたコントロール(データリスト内のラベル)を見つける。 2.それの価値を得る。 Javascriptでデータリストにクリックされたアイテムの値を取得します。

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++; 
     } 

この

はここに私の実行()関数

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

これは素晴らしい記事では、あなたはCSSクラスを使用しての代わりに、各項目についてのonclickイベントを定義するデータリスト内の任意の項目でより多くのエレガントなイベントをクリックして添付することができhere

+0

私はそれを試してみましたが、.valueOf()は.valueを見ることができず、動作していません。 – minhminh265

+0

値の代わりに.innerTextを試してみて、それが動作するかどうか教えてください – Adil

+0

こんにちは、 )、何をする必要があります – minhminh265

0

あなたのグリッドビューの良い理解を得られます。

たとえば、labelには次のcssプロパティ= "itm"があります。

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

sr私は初心者です、あなたははっきりと言うことができます:) – minhminh265

0

私は私の問題を解決する方法が見つかりました:
まず追加:

文字列GT =((ラベル)item1.FindControl( "lblsttを"))テキスト;。
その後

((ラベル)item2.FindControl( "lblCauHoi"))Attributes.Add( "onclickの"、 "ラン(" + GT + ");")。 ;

希望します。