我如何获得asp:面板默认按钮来触发按钮点击事件?

时间:2013-04-09 23:36:59

标签: asp.net textbox enter dopostback defaultbutton

我有三个asp网络文本框,其中包含搜索表格的搜索条件。我希望搜索工作像谷歌一样。按下回车键使“Enter”按钮上的点击事件触发。点击事件永远不会触发。我能做些什么来解雇它?

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebCategoryGenerateEdit.ascx.cs"
Inherits="EPPA.Controls.WebCategoryGenerateEdit" ClientIDMode="Static" %>
<script src="/Scripts/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
//    debugger;
function pageLoad() {
    var gvCategoryMessage = $("#<%=GVCategoryMessage.ClientID %>").html

    if (gvCategoryMessage.length != 0) {
        $("#<%=GVParentCategoryLinkTitle.ClientID %>").keydown(function () {
            $("#<%=GVCategoryMessage.ClientID %>").html("");
        })
        $("#<%=GVCategoryLinkTitle.ClientID %>").keydown(function () {
            $("#<%=GVCategoryMessage.ClientID %>").html("");
        })
    }
}
</script>
<asp:ScriptManager runat="server" />
<asp:MultiView ID="Multiview1" runat="server" ActiveViewIndex="0">
<asp:View ID="SearchView" runat="server">
        <asp:Table ID="TableSV1" runat="server">
            <asp:TableRow ID="TableRowSV1" runat="server">
                <asp:TableCell ID="TableCellSV1" runat="server">
                    <asp:Label ID="LabelSV1" runat="server" SkinID="SearchTextLabel"
Text="CB or CJ" CssClass="searchTextLabel_Division"/>
                </asp:TableCell>
                <asp:TableCell ID="TableCellSV2" runat="server">
                    &nbsp;<asp:Label ID="LabelSV2" runat="server"
SkinID="SearchTextLabel" Text="Parent Category Link Title"
CssClass="searchTextLabel_ParentCategoryLink" />
                </asp:TableCell>
                <asp:TableCell ID="TableCellSV3" runat="server">
                    &nbsp;<asp:Label ID="LabelSV3" runat="server"
 SkinID="SearchTextLabel"
 Text="Category Link Title" CssClass="searchTextLabel_CategoryLink" />
                </asp:TableCell>
                <asp:TableCell ID="TableCellSV4" runat="server">
                    &nbsp;<asp:Label ID="Label1" runat="server" 
 SkinID="SearchTextLabel"
 Text="Category ID" CssClass="searchTextLabel_CategoryID" />
                </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow ID="SVTableRowSV2" runat="server">
                <asp:TableCell ID="TableCellSV5" runat="server">
                    <asp:DropDownList ID="SVDivisionDDL" runat="server"
 OnSelectedIndexChanged="SVDivisionDDL_SelectedIndexChanged" AutoPostBack="true" >
                        <asp:ListItem Value="CB">CB</asp:ListItem>
                        <asp:ListItem Value="CJ">CJ</asp:ListItem>
                    </asp:DropDownList>
                    &nbsp;
                </asp:TableCell>            
                <asp:TableCell ID="TableCellSV6" runat="server" >
                   <asp:panel ID="SVPCLTContainer" runat="server"
                    DefaultButton="SV6EnterButton">                       
                      <asp:TextBox ID="SVParentCategoryLinkTitle" runat="server"
                         SkinID="SearchTextBox"
                         CssClass="searchTextBox_ParentCategoryLink"  />
                      <asp:Button ID="SV6EnterButton" runat="server"  Visible="false"
                         Text="Enter" OnClick="EnterKeyPressed_Click" />  
                   </asp:panel>
                   &nbsp;
                </asp:TableCell>            
                <asp:TableCell ID="TableCellSV7" runat="server" >
                    <asp:TextBox ID="SVCategoryLinkTitle"
                         runat="server" SkinID="SearchTextBox" 
                           CssClass="searchTextBox_CategoryLink" />
                    &nbsp;
                </asp:TableCell>            
                <asp:TableCell ID="TableCellSV8" runat="server" >
                    <asp:TextBox ID="SVCategoryID" runat="server"
                       SkinID="SearchTextBox"
                       CssClass="searchTextBox_CategoryID" />
                    &nbsp;
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>
    <asp:Button ID="SVGenNewButton" runat="server" Text="Generate New Category ID"
 OnClick="SVGenerateNewButton_Click" />
    &nbsp;
    <asp:Button ID="SVDeleteButton" runat="server" Text="Delete Checked items"
 OnClick="SVDeleteButton_Click" />
    <div style="width:618px; overflow-x:no-display; overflow-y:auto; max-height:392px; 
 padding-top:2px; ">
        <asp:GridView ID="gvWebCategoryID" runat="server" AutoGenerateColumns="False"
 SkinID="gridViewSkin" OnRowDeleting="gvWebCategoryID_RowDeleting" >
            <Columns>
                <asp:TemplateField HeaderText="Edit">
                    <ItemTemplate>
                       <asp:Button ID="SVgridViewEditButton" runat="server"
 OnClick="gvWeCategoryIDEditButton_Click" Text="Edit" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Delete">
                    <ItemTemplate>
                       <asp:CheckBox ID="Checkbox1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Division" HeaderText="CB or CJ"
                 Visible="true"  />
                <asp:BoundField DataField="ParentCategoryLinkTitle" HeaderText="Parent
                 Category Link Title" />
                <asp:BoundField DataField="CategoryLinkTitle" HeaderText="Category 
                     Link Title" />
                <asp:BoundField DataField="CategoryID" HeaderText="Category ID" />
                <asp:TemplateField HeaderText="Error Message" Visible="false" >
                    <ItemTemplate>
                       <asp:Label ID="ErrorMessage" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
</asp:View>

</asp:MultiView>        

这是后面的代码方法:

    protected void EnterKeyPressed_Click(object sender, EventArgs e)
    {
        ReloadData();
        this.Multiview1.ActiveViewIndex = 0;
    }

2 个答案:

答案 0 :(得分:1)

快速浏览一下,您是否尝试在此处删除返回false:

$("#<%=SVParentCategoryLinkTitle.ClientID %>").keydown(function (e) {
    if (e.which == 13) {
        __doPostBack("#<%=EnterKeyPressed.UniqueID %>", "");
        return false;
    }
})

答案 1 :(得分:0)

查看此问题和答案,如果有帮助:Default button not working in asp.net panel

如果焦点已经在面板内,DefaultButton用于捕获Enter键,例如,您必须将焦点移动到输入字段,如面板内的文本框。如果焦点不在那里它将无法工作。