【发布时间】: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 方法的原因。
-
是的,他们是,但我看不到我犯这种错误的任何地方,我已经来回复制粘贴了所有的名字
-
这行
<asp:Button ID="btnBtCBerigelse" runat="server" Text="Vis" onClick="btnBtCBerigelse_Click"/>不应该是onclick="btnBtCBerigelse_Click"吗?