2013-04-09 81 views
0

我有三个asp网络文本框,将包含搜索表的搜索条件。我希望搜索能像谷歌一样工作。按下回车键以激活“Enter”按钮上的点击事件。点击事件从不会触发。我能做些什么来让它着火?我如何得到asp:面板默认按钮发射按钮单击事件?

<%@ 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; 
    } 
+0

当我设置“返回true;”触发面板外部第一个按钮(SVGenNewButton)的点击事件。 – Tom3609 2013-04-10 13:45:35

回答

0

退房这个问题和答案,如果它可以帮助:Default button not working in asp.net panel

DefaultButton被用来捕捉Enter按键,如果焦点已经在面板内部,例如,您必须将焦点移至输入字段,如面板内的文本框。如果焦点不在那里,它将无法工作。

+0

要测试这个,我在文本框“SVParentCategoryLinkTitle”中输入一个值。当我按下回车键时,“EnterKeyPressed”按钮的点击事件仍然没有开火。 – Tom3609 2013-04-10 13:49:52

+0

我确实转到了包含的链接。在他们的例子中,他们说你需要一个按钮以外的输入控件。我在面板里有一个asp:textbox控件。我希望用户能够在asp:文本框中输入文本,然后按回车键来触发隐藏的按钮单击事件。 – Tom3609 2013-04-12 15:50:14

+0

我更改了上面显示的原始源代码。我用asp:面板包围了asp:textbox和asp:button。 asp:面板有一个默认的“SV6EnterButton”按钮(面板内的按钮)。 – Tom3609 2013-04-12 16:12:01

1

快速浏览,你尝试过在这里假取出回报:

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