0

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);
        }

    }

我尝试在页面上添加几个按钮,但它们都不起作用。当我附加进程时,断点会命中其他事件,但不会点击按钮。关于我在这段代码中犯了什么错误有什么建议吗?

4

4 回答 4

0

您可以使用

<asp:AsyncPostBackTrigger ControlID="btnModify" />
于 2013-07-08T15:18:11.150 回答
0
<asp:Button ID="btnModify" runat="server" Text="Button" OnClick="btnModify_Click" UseSubmitBehavior="false"/>

由于按钮位于 UpdatePanel 内,因此将其更改为使用回发机制而不是浏览器表单提交。

Button.UseSubmitBehavior 属性

于 2013-07-08T16:54:43.507 回答
0

您的按钮位于更新面板内,因此您需要将按钮作为触发器添加到更新面板。添加到更新面板的底部:

</ContentTemplate>
<Triggers>
  <asp:AsyncPostBackTrigger ControlID="btnModify" />
</Triggers>
</asp:UpdatePanel>
于 2013-07-08T15:13:46.717 回答
0

我在 2010 年和 2012 年都创建了新的 Web 表单项目,但无法重现该问题。我将您的脚本添加到顶部内容并将标记添加到“MainContent”区域,在这两种情况下,按钮都没有问题。(我更改了代码隐藏以简单地切换单选按钮,并且在这两个项目中,它再次运行良好。)我想知道您的脚本是否会以某种方式导致问题。

于 2013-07-08T16:11:00.080 回答