不能设置DefaultButton在用户控件 [英] Cannot set a DefaultButton on a usercontrol

查看:95
本文介绍了不能设置DefaultButton在用户控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想设置一个用户控件作为defaultbutton一个页面上,但它不工作的按钮。这里是code为我的用户控件

I am trying set a button on a user control as defaultbutton on a page but its not working. Here is the code for my user control

<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在页面中:

I am using the above control : TopicPicker in a page:

<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按钮来执行,这是不会发生。

Now when I hit enter, on the page, I want the "btnSubmit" to be executed, which is not happening.

我如何得到这个工作。

谢谢,

推荐答案

在什么情况下,你期待btnSubmit按钮点击事件触发?

under what circumstances are you expecting the btnSubmit Click event to fire?

我问,因为该事件将仅在回车键被触发时,它实现了IButtonControl接口的控制有焦点pressed。

I ask because the event will only be triggered if the Enter key is pressed when a control which implements the IButtonControl interface has focus.

这将包括(其中包括)TextBox和DropDownList的。

This would include (among others) TextBox and DropDownList.

如果您选择的DropDownList,然后按回车键就应该触发事件。但是,只需点击任何元素(如DIV),并按下回车键不会的。

If you select your DropDownList and then hit enter it should fire the event. But just clicking any element (such as a DIV) and hitting enter would not.

修改(基于评论)

它的一个黑客位,但你可以实现你问使用下面的JavaScript是什么(使用jQuery):

Its a bit of a hack but you can achieve what you ask using the following javascript (uses JQuery):

<script type="text/javascript">
    $(document).keypress(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 13) {
            $('#<%= btnSubmit.ClientID %>').click();
        }
    });
</script>

这篇关于不能设置DefaultButton在用户控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆