繁体   English   中英

获取由Javascript在数据列表中单击的项目的值

[英]Get value of item which is clicked in datalist by Javascript

设计时,我有一个带有标签的数据列表。 加载时将具有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获得单击的标签的值。

感谢您的帮助(有关我的英语的帮助)

这样尝试吧...

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

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

在客户端,我们必须更改定义以接收从服务器端传递的参数。 在我们的情况下,参数名称为lbl。

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

这是很好的文章会给你网格视图的很好的理解这里

您可以使用CSS类将click事件更优雅地附加到数据列表中的任何项目,而不必为每个项目定义onclick事件。

例如,label具有以下css属性=“ itm”;

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

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

字符串gt =((Label)item1.FindControl(“ lblstt”))。Text;

之后:

((Label)item2.FindControl(“ lblCauHoi”))。Attributes.Add(“ onclick”,“ run(” + gt +“);”);

希望它有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM