使用jquery将客户端事件绑定到动态datalist项

时间:2013-09-07 06:49:07

标签: c# javascript jquery asp.net

我遇到了问题。我动态地在数据列表中加载元素。我正在尝试使用jquery绑定列上的click事件。当我使用母版页时,它工作正常。因为它遵循页面生命周期并在子页面数据绑定后加载jquery。但是当我在普通页面(没有母版页)中使用它时,它不允许我执行所需的操作。我知道为什么会发生这种情况,原因是jquery在元素绑定之前被加载。所以jquery无法绑定click事件,因为它无法找到这些控件。

绑定元素已经包含“item”类

这是我的jquery代码:

$(document).ready(function () {
    $('.item').click(function () {
          //do something here
   });
});
代码背后的代码:

 protected void Page_Load(object sender, EventArgs e)
 {
     using (TestEntites db = new TestEntites())
    {
        IEnumerable<Template> Test = from t in db.Template
                                                    where t.Customer == clsuser.CustomerID
                                                        && t.Region == user.RegionID
                                                    select t;

        dlTemplateGroups.DataSource = Test;
        dlTemplateGroups.DataBind();

        BindTemplates(db);
    }     
 }

2 个答案:

答案 0 :(得分:1)

$(document).ready(function () {
    $('body').on('click', '.item' ,function () {
          //do something here
   });
});

$(&#39; body&#39;)根据您的HTML

使其更具体

答案 1 :(得分:0)

我也遇到过同样的问题,这个问题确实很痛苦。

这是我的解决方案:

而不是使用click绑定创建一个函数,例如:

function reBinding()
{
      $('.item').on("click",function () {
      //do something here
      });
}

并在完成数据绑定后调用此函数。如果您使用更新面板将会很好。

ScriptManager.RegisterStartupScript(rptGridAlbum.GetType, "scriptname", "reBinding();", True)