0

设计时,我有一个内部带有标签的 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 获取点击标签的值。

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

4

3 回答 3

0

我找到了如何解决我的问题:
首先添加:

字符串 gt = ((标签)item1.FindControl("lblstt")).Text;

在那之后:

((标签)item2.FindControl("lblCauHoi")).Attributes.Add("onclick", "run("+gt+");");

希望它有用。

于 2012-05-19T03:52:28.957 回答
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

您可以使用 css 类更优雅地为 datalist 中的任何项目附加点击事件,而不是为每个项目定义 onclick 事件。

例如标签具有以下css属性=“itm”;

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