2012-04-23 57 views
0

设计时,我有一个带有标签的Datalist。当它加载时会有10个标签(来自列表的数据源有10个值类型int)。我想要获得任何我点击的标签的价值。我认为我必须解决2个问题: 1.找到点击的控件(标签内datalist)。 2.获取它的价值。通过Javascript获取在datalist中点击的项目的价值

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我的英语)

回答

0

试试这样...

,同时结合使用关键字这一点,JavaScript事件,我们将通过标签的当前目标。在服务器端

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

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

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

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

+0

我曾尝试过,但只看到.valueOf()无法看到.value,它不工作 – minhminh265 2012-04-23 05:35:53

+0

尝试.innerText而不是价值,并告诉我它是否工作 – Adil 2012-04-23 06:02:36

+0

嗨Adil,它出现一个空白弹出窗口),我该怎么做 – minhminh265 2012-04-23 06:14:30

0

您可以将DataList控件使用CSS类中的任何项目单击事件更优雅,而不是每个项目定义onclick事件。

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

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

sr我是初学者,你可以说清楚:) – minhminh265 2012-04-23 05:37:44

0

我发现如何解决我的问题:
先加:

串GT =((标签)item1.FindControl( “lblstt”))文本;

之后:

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

希望它有用。

相关问题