通过Javascript获取在datalist中点击的项目的值

时间:2012-04-23 04:59:18

标签: javascript asp.net

设计时,我有一个带有标签的Datalist。加载时它将有10个标签(列表中的数据源有10个值类型为int)。我想获得我点击的任何标签的价值。我想我必须解决2个问题: 1.找到单击的控件(datalist中的标签)。 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获取标签的值。

感谢您的帮助(先生我的英语)

3 个答案:

答案 0 :(得分:0)

以这种方式试试......

我们将在使用关键字this绑定javascript事件时传递标签的当前对象。在服务器端

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

在客户端,我们必须更改定义以接收从服务器端传递的参数。在我们的例子中,参数名称是lbl。

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

这篇不错的文章将让您更好地理解网格视图here

答案 1 :(得分:0)

您可以使用css类更优雅地附加Clickal事件,而不是为每个项目定义onclick事件。

例如label具有以下css property =“itm”;

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

答案 2 :(得分:0)

我找到了解决问题的方法:
首先添加:

  

string gt =((Label)item1.FindControl(“lblstt”))。文字;

之后:

  

((标签)item2.FindControl( “lblCauHoi”))。Attributes.Add( “点击”,   “运行(” + GT + “);”);

希望它有用。