【问题标题】:Button only works once and then breaks all other buttons on page too按钮只能工作一次,然后也会破坏页面上的所有其他按钮
【发布时间】:2014-09-04 18:50:23
【问题描述】:

我有一个很大的表格,上面有几个按钮。它们的目的是显示/隐藏页面的各个部分(包含在 UpdatePanels 中)。它们都使用相同的私有方法来执行此操作(将按钮和面板作为参数)。然而,我的两个按钮的行为与其他按钮不同。其中一个就是什么都不做。另一个工作一次,但从那时起停止所有按钮工作。 如果该按钮已被按下,则不会调用按钮的 onClick 方法,除非页面被重新加载(通过调试检查)。

打破一切的按钮及其面板:

<asp:Button ID="btnBtCBerigelse" runat="server" Text="Vis" onClick="btnBtCBerigelse_Click"/>
<asp:Panel ID="pnlBtCBerigelse" runat="server" Visible="false" BorderColor="#99CCFF" BorderStyle="Solid">
   Content of panel
</asp:Panel>

该按钮的 onClick 方法(在 .cs 文件中):

protected void btnBtCBerigelse_Click(object sender, EventArgs e)
    {
        visSkjul(btnBtCBerigelse, pnlBtCBerigelse);
    }

这个方法在我第一次点击那个按钮时被调用,但之后不会。

它和其他按钮的方法调用的方法(在同一个 .cs 文件中):

private void visSkjul(Button btn, Panel pnl)
    {
        if (pnl.Visible)
        {
            pnl.Visible = false;
            btn.Text = "Vis";
        }
        else
        {
            pnl.Visible = true;
            btn.Text = "Skjul";
        }
    }

另一个按钮,应该是相同的,但在单击 btnBtCBerigelse 按钮​​之前工作正常:

<asp:Button ID="btnBtCEmne" runat="server" Text="Vis" onclick="btnBtCEmne_Click" />
<asp:Panel ID="pnlBtCEmne" runat="server" Visible="false" BorderColor="#99CCFF" BorderStyle="Solid">
    Content of panel
</asp:Panel>

起作用的按钮方法:

protected void btnBtCEmne_Click(object sender, EventArgs e)
    {
        visSkjul(btnBtCEmne, pnlBtCEmne);
    }

它调用与另一个按钮相同的私有方法。

破坏一切的按钮甚至破坏了我页面上的保存按钮,保存不使用任何面板或私有方法。

当单击此特定按钮时会发生什么,而其他所有按钮都不会发生?该页面以前工作过,我认为除了添加 xml 文档之外我没有更改任何内容(但这不应该更改任何内容,对吧?)。

google docs 文档中页面和 .cs 文件的代码:https://docs.google.com/document/d/1HhtSq5nXBio09pSBRsBWQbOM9m6Hr5wrNqhJ0O5Yf6s/edit?usp=sharing

【问题讨论】:

  • 你试过下断点调试吗?
  • 属性不区分大小写吗?仅提及是因为您发布的有效代码具有“onclick=”属性,而您发布的无效代码具有“onClick=”属性。
  • 是的,这就是为什么我知道在单击按钮后永远不会调用 onClick 方法的原因。
  • 是的,他们是,但我看不到我犯这种错误的任何地方,我已经来回复制粘贴了所有的名字
  • 这行&lt;asp:Button ID="btnBtCBerigelse" runat="server" Text="Vis" onClick="btnBtCBerigelse_Click"/&gt;不应该是onclick="btnBtCBerigelse_Click"吗?

标签: c# asp.net


【解决方案1】:

验证器导致了问题。我在面板的一个字段上添加了一个验证器,当这个验证器不满意时,页面上的任何按钮都不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2017-12-09
    相关资源
    最近更新 更多