在asp.net上调用两个函数按钮onclick

时间:2012-08-15 04:40:44

标签: asp.net

我想在按钮点击时调用两个函数 我试过这个

 <asp:Button ID="Button2" runat="server" Font-Bold="False" onclick="tableShow();Unnamed1_Click" Text="Search" 
         Width="63px">

3 个答案:

答案 0 :(得分:12)

OnClick是服务器端事件。因此,您可以分配一个方法,并从该方法调用其他方法,如下所示。

在asp标记中

<asp:Button ID="Button2" runat="server" Font-Bold="False" onclick="Unnamed1_Click" 
 Text="Search" Width="63px">

在代码背后

protected void Unnamed1_Click(object sender, EventArgs e)
{
    this.tableShow();
    //Do your actual code here.
}

<强>更新

如果tableShow是javascript方法,那么您可以使用以下标记

<asp:Button ID="Button2" runat="server" Font-Bold="False" 
 OnClientClick="tableShow();" onclick="Unnamed1_Click" Text="Search"
 Width="63px">

答案 1 :(得分:1)

您可以使用方法内部方法来执行此操作。 首先这样做

<asp:Button ID="Button2" runat="server" Font-Bold="False" onclick="Unnamed1_Click" Text="Search" 
         Width="63px">

然后在代码背后

protected void Unnamed1_Click(object sender, EventArgs e)
{
    //call another function here
}

答案 2 :(得分:0)

另一种选择是使用onclientclick事件,它允许您在没有服务器交互的情况下运行JS函数。

<asp:TemplateField>
    <FooterTemplate>
        <asp:Button ID="btnAdd" runat="server" Text="Add" onclick="btnAdd_Click" OnClientClick="javascript:ResetSaveFlag()"/>
        <asp:Button ID="btnClear" runat="server" Text="Clear" OnClientClick="javascript:ResetSaveFlag(); javascript:clearEntries(this)"/>
    </FooterTemplate>
    <ItemTemplate>
        <asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" 
            onclick="btnDelete_Click" 
            CommandArgument='<%# Eval("partNumber") + "," + Eval("warehouseLocation") %>' 
            UseSubmitBehavior="False"/>
    </ItemTemplate>
</asp:TemplateField>

在第一个按钮(向表中添加新行)中,我有一个服务器端onclick="btnAdd_Click"以及一个客户端OnClientClick="javascript:ResetSaveFlag()"

第二个按钮(清除一行并设置“干净”标志so onbeforeunload won't run),我没有使用任何服务器端代码,只使用客户端OnClientClick="javascript:ResetSaveFlag(); javascript:clearEntries(this)"。第一个清除“脏”标志,第二个清除任何条目的行。

如果有人有兴趣我可以发布干净&amp;脏旗JS,但它与原来的问题似乎没有密切关系。

相关问题