0

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

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)

4

3 に答える 3

0

各アイテムのonclickイベントを定義する代わりに、cssクラスを使用して、データリスト内の任意のアイテムにクリックイベントをよりエレガントに添付できます。

たとえば、ラベルには次のcssプロパティがあります= "itm";

$(document).on('click', '.itm', function (e) {
   run(this);
});
于 2012-04-23T05:10:57.740 に答える
0

この方法で試してください...

キーワードthisを使用してjavascriptイベントをバインドしながら、ラベルの現在のオブジェクトを渡します。サーバー側

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

クライアント側では、サーバー側から渡されるパラメーターを受け取るように定義を変更する必要があります。この場合、パラメータ名はlblです。

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

この素晴らしい記事は、ここでグリッドビューをよく理解するのに役立ちます

于 2012-04-23T05:04:14.223 に答える
0

問題を解決する方法を見つけました:
最初に追加:

string gt =((Label)item1.FindControl( "lblstt"))。Text;

その後:

((Label)item2.FindControl( "lblCauHoi"))。Attributes.Add( "onclick"、 "run(" + gt + ");");

お役に立てば幸いです。

于 2012-05-19T03:52:28.957 に答える