在按钮上隐藏和显示div在UpdatePanel中单击

时间:2010-11-29 13:16:27

标签: asp.net jquery updatepanel

我正在使用UpdatePanel ---> LinkBut​​ton - > Div --->表结构。 当我单击Linkbutton时,div必须首先显示表格式并且必须在其OnClick事件中执行代码,我面临的问题是我尝试了如下所示的许多jquery函数:

<asp:LinkButton ID="lnkbtnUnitAdd" runat="server" OnClientClick="Toggledivs()"  OnClick="lnkbtnAdd_Click" Text="Add" ></asp:LinkButton>

即使我用过:

$(document).ready(function()
{ 
    $("#lnkbtnUnitAdd").click(function () {
        $("#divUnit").show("slow"); return false;
    });
});

function Toggledivs()
{
    $("#lnkbtnUnitAdd").click(function () {
        $("#divUnit").show("slow"); return false;
    });
}

或不使用LinkBut​​ton中的OnClientClick属性

结果相同,因为函数在按钮Onclient click或document.ready function()中返回false,因此按钮Onclick事件未触发。

如果我评论返回false,则div没有正确显示。

请在更新面板中帮助完成整个过程。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可能必须使用Control.ClientID。试试这个

$(document).ready(function(){ 
    $("#<%=lnkbtnUnitAdd.ClientID%>").click(function () {
        $("#divUnit").show("slow"); return false;
    });
});

我不建议在HTML中添加事件处理程序。但是下面的代码应该可行。您不必再次分配点击事件。

function Toggledivs()
{
    $("#divUnit").show("slow"); 
    return false;
}

return true;

如果您希望执行onclick函数。

答案 1 :(得分:0)

如果我理解了你的意思,那就应该这样做: 只有在动画完成后才能调用__doPostBack,你可以通过将回调函数传递给jquery的show的第二个参数来实现。 <强>更新

$(document).ready(function()
{ 
    $("#lnkbtnUnitAdd").click(function (e) {
        var btnName = $(this).attr('name');           
        $("#divUnit").show("slow",function(){
           __doPostBack(btnName,''); //now call the actual postback event      
        });

        e.preventDefault(); //prevent default postback behavior
        return false;
    });
});