5

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

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

3 回答 3

15

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">
于 2012-08-15T04:44:34.660 回答
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
}
于 2012-08-15T06:44:56.110 回答
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()"

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

如果有人感兴趣,我可以发布干净和肮脏的标志 JS,但它似乎与原始问题并没有密切关系。

于 2016-06-17T14:47:01.610 回答