使用asp:linkButton调用2个函数

3
我需要在使用LinkButton控件的onclick中调用2个函数,但它无法执行javascript函数:
<asp:LinkButton ID="btnVirement" value="virement" runat="server" style="color: #f15d22;" onclick="CatchLinkVirement();btnVirement_Click" ><u><b>Comment effectuer un virement ?</b></u></asp:LinkButton>

这是CatchLinkVirement() JavaScript函数的代码:
function CatchLinkVirement() {

    var pLinkVirement = document.getElementById("btnVirement").value;
    sessionStorage.setItem("pClickVirement", pLinkVirement);
    alert(pLinkVirement);
}

这是我的代码后端:

public void btnVirement_Click(object sender, EventArgs e)
 {
        HttpContext.Current.Session["BonSavoirPopup"] = "BonAsavoirVirement";
        Response.Redirect("Mytransfers.aspx");


 }

1
使用onclientclick来调用JavaScript函数,使用onclick来调用服务器端函数。 - PSK
1
@anass90,请查看更新的答案,在 OnClientClick 中添加 return - Divyang Desai
干得好!!你是最棒的! - anass 90
@anass90 试试这样写:var id = ('id=$btnVirement').val(); - Divyang Desai
让我们在聊天中继续这个讨论。点击此处进入聊天室 - anass 90
显示剩余4条评论
4个回答

2
你可以尝试这样做:
OnClick="btnVirement_Click" OnClientClick="return CatchLinkVirement();"

它没有起作用!那onclick呢?我应该忽略它吗? - anass 90
onclick 是服务器端 (asp) 的,onclientclick 是客户端 (js) 的。这应该可以工作,你的 js 控制台有没有出现任何错误? - Pete

1

在您的按钮点击处理程序(服务器端)中编写以下行:

 ScriptManager.RegisterStartupScript(this, this.GetType(), "SimpleScript", "CatchLinkVirement();", true)

这样你就可以从后端代码中调用JavaScript函数。

0

试试这个,

<asp:LinkButton ID="btnVirement" value="virement" runat="server" OnClick="btnVirement_Click" OnClientClick="return CatchLinkVirement();">Comment effectuer un virement ?</asp:LinkButton>

在上面的代码中,函数调用的层次结构如下:

  1. 调用 CatchLinkVirementOnClientClick JavaScript 函数,然后

  2. 调用 btnVirement_ClickOnClick 服务器事件(函数)

单击 LinkButton 时会同时调用两个函数。 OnClientClick 事件仅适用于服务器控件。


0

试一试。如果你想从Javascript调用后端代码

<asp:LinkButton ID="btnVirement" value="virement" runat="server" style="color: #f15d22;" onclick="btnVirement_Click" OnClientClick="return CatchLinkVirement(); ><u><b>Comment effectuer un virement ?</b></u></asp:LinkButton>

JavaScript 函数

   function CatchLinkVirement() {

        var pLinkVirement = document.getElementById("btnVirement").value;
        sessionStorage.setItem("pClickVirement", pLinkVirement);
        alert(pLinkVirement);
        document.getElementById('btnVirement').click();
    }

代码 .aspx.cs

public void btnVirement_Click(object sender, EventArgs e)
 {
        HttpContext.Current.Session["BonSavoirPopup"] = "BonAsavoirVirement";
        Response.Redirect("Mytransfers.aspx");
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接