UpdatePanel在datalist上打破JQuery脚本

时间:2014-08-07 06:57:32

标签: javascript jquery asp.net updatepanel datalist

我有一个更新面板,在更新面板中我有一个数据列表。

在datalist上我有多个div

<div class="prod_details_tab">
    <div class="prod_details_sell">
        <a href="Handler.ashx?action=addToBasket&productID=4" onclick="return false;">
            <img src="images/cart.gif" alt='<%#String.Format("{0}", Eval("k_name1")) %>'
                width="16" height="16" id='<%#String.Format("{0}", Eval("k_name1")) %>'
                class="left_IB" />
        </a>
    </div>
</div>

我写了一个jQuery代码,当一个人点击cart.gif pic运行jQuery

 $(".prod_details_sell a img").click(function () {
        //some code is here
});

在datalist jquery的第一页运行良好,一切正常。

但在第二页上,当我点击cart.gif时,jQuery没有运行。

请帮我修理

由于

编辑:我在下一个按钮和上一个按钮点击这里

   protected void cmdNext_Click(object sender, EventArgs e)
   {
        // Set viewstate variable to the previous page
        CurrentPage += 1;

        PagedDataSource pagedDS = new PagedDataSource();
        pagedDS.DataSource = ((DataTable)Cache["DataTable-cach"]).DefaultView;// cacheItem.DefaultView;
        pagedDS.AllowPaging = true;
        pagedDS.PageSize = 6;
        pagedDS.CurrentPageIndex = CurrentPage;

        dlPaging.DataSource = pagedDS;
        dlPaging.DataBind();

        // Disable Prev or Next buttons if necessary
        cmdPrev.Enabled = !pagedDS.IsFirstPage;
        cmdNext.Enabled = !pagedDS.IsLastPage;
    }

   protected void cmdPrev_Click(object sender, EventArgs e)
    {
        // Set viewstate variable to the previous page
        CurrentPage -= 1;
            PagedDataSource pagedDS = new PagedDataSource();
            pagedDS.DataSource = ((DataTable)Cache["DataTable-cach"]).DefaultView;// cacheItem.DefaultView;
            pagedDS.AllowPaging = true;
            pagedDS.PageSize = 6;
            pagedDS.CurrentPageIndex = CurrentPage;
            dlPaging.DataSource = pagedDS;
            dlPaging.DataBind();
            lblCurrentPage.Text = pagedDS.PageCount.ToString() + " صفحه    " + (CurrentPage + 1).ToString() + " از ";
            // Disable Prev or Next buttons if necessary
            cmdPrev.Enabled = !pagedDS.IsFirstPage;
            cmdNext.Enabled = !pagedDS.IsLastPage;

    }
     public int CurrentPage
    {
        get
        {
            // look for current page in ViewState
            object o = this.ViewState["_CurrentPage"];
            if (o == null)
                return 0; // default page index of 0
            else
                return (int)o;
        }

        set
        {
            this.ViewState["_CurrentPage"] = value;
        }
    }

3 个答案:

答案 0 :(得分:1)

谢谢各位朋友 我编辑html文件

 <ContentTemplate>
              <script type="text/javascript">
                  Sys.Application.add_load(BindEvents);
               </script>
               .
               .
               .

并编辑我的jquery文件

function BindEvents() {
//my jquery codes
}

快乐

答案 1 :(得分:0)

当您转到数据列表的下一页时,onclick事件将被解除绑定,因为更新面板会刷新div中的内容。因此必须再次添加onclick事件以获得预期结果。 请在您的datalist绑定代码下方的cs页面中尝试以下操作。

ScriptManager.RegisterClientScriptBlock(id of update panel, 
                    typeof(UpdatePanel), "string", 
                    "$(function () {$('.prod_details_sell a img').click(function () {
                   //some code is here
                   });)", true);

答案 2 :(得分:0)

只需替换它:

$(".prod_details_sell a img").click(function () {
        //some code is here
});


有了这个:

Sys.Application.add_load(initJavaScripts);
function initJavaScripts() {
    $(".prod_details_sell a img").click(function () {
        //some code is here
    });
}