无法在用户控件上设置 DefaultButton

2024-04-19

我正在尝试将用户控件上的按钮设置为页面上的默认按钮,但它不起作用。这是我的用户控件的代码

<asp:Panel ID="pnlTopicPicker"  runat="server" DefaultButton="btnSubmit">
    <div class="PadBottom">
        <div id="divTopic" class="FloatLeft PadDiv">
            <div class="SectionHeader FloatLeft PadRightMediumSmall">Topic:</div>
            <asp:DropDownList ID="ddlSelectedTopic" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSelectedTopic_OnSelectedIndexChanged" >
            </asp:DropDownList>
        </div>
        <div class="FloatLeft PadLeftMediumSmall">
               <asp:Button ID="btnClear" runat="server" Text="Clear" OnClick="btnClear_Click" CssClass="DefaultButton" />
        </div>
        <div class="FloatRight PadRightMediumSmall">
               <asp:Button ID="btnSubmit" runat="server" Text="View Report" OnClick="btnSubmit_Click" OnClientClick="return ViewReportSubmit(event);" CssClass="DefaultButton" />
        </div>
     </div>
</asp:Panel>

我在页面中使用上面的控件:TopicPicker:

<asp:UpdatePanel ID="pnlFind" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
            <div class="PadLeft">
                <Incapnet:TopicPicker ID="incTopicPicker" runat="server" OnClearClick="btnClear_Click" OnSubmitClick="btnSubmit_Click" OnSelectedTopicChanged="ddlSelectedTopic_Changed" />
            </div>
            <div class="ClearBoth" />
            <div class="PadTop PadLeft" >
                <asp:GridView ID="gvFindGrid" runat="server" AutoGenerateColumns="False" OnRowDataBound="gvFindGrid_RowDataBound" 
                         CssClass="ContrastTable UFWideTable"  GridLines="None">
                    <AlternatingRowStyle CssClass="AlternateRow" />
                    <RowStyle CssClass="Row" />
                    <HeaderStyle CssClass="HeaderRow" />
                    <EmptyDataTemplate>
                        No Records Found
                    </EmptyDataTemplate>
                    <Columns>
                    ... 
                    ...
        </ContentTemplate>
    </asp:UpdatePanel>

现在,当我在页面上按回车键时,我希望执行“btnSubmit”,但这没有发生。

我该如何让它发挥作用。

Thanks,


您期望在什么情况下触发 btnSubmit Click 事件?

我之所以这么问,是因为只有当实现 IButtonControl 接口的控件获得焦点时按下 Enter 键,才会触发该事件。

这将包括(除其他外)TextBox 和 DropDownList。

如果您选择 DropDownList 然后按 Enter 键,它应该会触发该事件。但仅仅单击任何元素(例如 DIV)并按 Enter 键则不会。


编辑(根据评论)

它有点像黑客,但你可以使用以下 javascript (使用 JQuery)实现你所要求的:

<script type="text/javascript">
    $(document).keypress(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 13) {
            $('#<%= btnSubmit.ClientID %>').click();
        }
    });
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在用户控件上设置 DefaultButton 的相关文章

随机推荐