PFB以下代码存在于我的一个.aspx文件中。我添加了一个按钮,并在后面的代码中添加了一个方法。我已将该过程附加到调试器,但按钮单击事件未被触发。我应用程序其余部分的所有内容都工作正常,但只有在此屏幕上才会在服务器端触发任何事件。如果我添加一个onClientClick事件,它就会被解雇。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Site2.Master" AutoEventWireup="true"
CodeBehind="AdminPage.aspx.cs" Inherits="RoomBook.Views.AdminPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script language="javascript" type="text/javascript">
$(function () {
var allPanels = $('.accordion > dd').hide(1000);
$('.accordion > dt > a').click(function () {
allPanels.slideUp();
$(this).parent().next().show(1000);
});
return false;
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<dl class="accordion">
<dt><a href="#">Modify / Delete Room</a></dt>
<dd>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<label id="roomNumber0" class="itemLeft">
Room Name
</label>
<asp:DropDownList class="inputTextRoom" ID="ddRoomName" runat="server">
</asp:DropDownList>
<br />
<label id="Label1" class="itemLeft">
Status</label>
<asp:RadioButtonList class="radioButton" ID="rbStatus" runat="server">
<asp:ListItem Text="Active"></asp:ListItem>
<asp:ListItem Text="Deactive"></asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="btnModify" runat="server" Text="Button" OnClick="btnModify_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</dd>
</dl>
</asp:Content>
方法定义背后的代码是:
protected void btnModify_Click(object sender, EventArgs e)
{
RoomDomain roomdomain = new RoomDomain();
string userName = (WindowsIdentity.GetCurrent().Name.ToString().Split('\\'))[1];
if (!(ddRoomName.SelectedIndex == 0))
{
roomdomain.RoomName = ddRoomName.SelectedItem.Value;
if (rbStatus.SelectedItem.Value == "Active")
{
roomdomain.IsActive = true;
}
else
{
roomdomain.IsActive = false;
}
adminPage.ModifyExistingRoom(roomdomain, userName);
}
}
我尝试在页面上添加几个按钮,但它们都不起作用。 当我附加进程时,断点会触及其他事件,但不会点击按钮。 关于我在这段代码中犯了哪些错误的任何建议?
答案 0 :(得分:0)
您的按钮位于更新面板内,因此您需要将按钮添加为更新面板的触发器。添加到更新面板的底部:
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnModify" />
</Triggers>
</asp:UpdatePanel>
答案 1 :(得分:0)
你可以使用
<asp:AsyncPostBackTrigger ControlID="btnModify" />
答案 2 :(得分:0)
我在2010年和2012年都创建了新的Web窗体项目,但无法重现该问题。我将您的脚本添加到顶部内容,将标记添加到“MainContent”区域,在这两种情况下按钮都没有问题。 (我改变了代码隐藏以简单地切换单选按钮,再次,在两个项目中,它工作得很好。)我想知道你的脚本是否会以某种方式导致问题。
答案 3 :(得分:0)
<asp:Button ID="btnModify" runat="server" Text="Button" OnClick="btnModify_Click" UseSubmitBehavior="false"/>
由于按钮位于UpdatePanel内部,因此将其更改为使用回发机制而不是浏览器表单提交。