我正在使用UpdatePanel ---> LinkButton - > 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;
});
}
或不使用LinkButton中的OnClientClick属性
结果相同,因为函数在按钮Onclient click或document.ready function()中返回false,因此按钮Onclick事件未触发。
如果我评论返回false,则div没有正确显示。
请在更新面板中帮助完成整个过程。
答案 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;
});
});