访问Dynamic Checkbox控件DataList内的ClientID控制ItemCreated事件

时间:2009-12-12 09:14:36

标签: c# asp.net

Dynamic CheckBox的ClientID属性

问题:我需要为Datalist中的每个复选框附加一些javascript函数。

当我试图在后面的代码中的 OnItemCreated 事件中访问ClientID时,它总是产生我在设计aspx页面中指定的相同ID [它没有生成唯一ID] 。注意:当我在 OnItemDataBound 命令中访问时,它会生成正确的唯一ID生成。有什么原因吗? 以下是守则......

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        CheckBox chk = (CheckBox)e.Item.FindControl("chkUID");
        if (chk != null)
        {
            chk.Attributes.Add("OnClick", "javascript:selectDiv(" + chk.ClientID.ToString() + ");");
        }
    } 
}

1 个答案:

答案 0 :(得分:0)

不要在代码隐藏中构建所有内容,而应该使用jQuery javascript库来附加onclick事件。

通常使用jQuery select在客户端执行此操作要容易得多。

如果您的id以chkUID开头,您可以执行以下操作:

$(document).ready(function () {
   $("div[id*='chkUID']").click( function() { selectDiv( $(this).id ) } );
});

有关jquery的教程,请查看http://docs.jquery.com/Tutorials