设计时,我有一个带有标签的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获取标签的值。
感谢您的帮助(先生我的英语)
答案 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 + “);”);
希望它有用。