2017-02-21 19 views
3

私の質問はかなり簡単です、とにかくリピーターのASPネットリンクボタンに "Enter"キーをバインドするにはありますか? (Iv'eはDefaultButtonプロパティを試してみましたが、それはうまくいきませんでした。ここに私のコードです:。バインディングaspネットリンクボタンリピーターへのキーを入力

private DataSet _groups; 
protected void rptVisitedItem_OnItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    var panel = (Panel) e.Item.FindControl("editLinkButton"); 
    var panelT = (Panel) e.Item.FindControl("editPanelGroup"); 
    var ph = (PlaceHolder)e.Item.FindControl("pHolder"); 
    var lbn = (LinkButton)e.Item.FindControl("btnGroup"); 

    panel.DefaultButton = lbn.ID; 
    panelT.DefaultButton = lbn.ID;   
} 

JavaScriptやでそれを行うには、とにかくあり:

ASPX:

<asp:Repeater runat="server" DataSource='<%# Eval("Visitor") %>' OnItemCommand="rptVisitedItem_OnItemCommand" OnItemDataBound="rptVisitedItem_OnItemDataBound" ID="rptVisitedItem"> 
    <ItemTemplate> 
     <td> 
      <asp:Panel Style="float: left;" runat="server" ID="editPanelGroup" Visible='<%# SelectId == Convert.ToInt32(Eval("VisitID")) %>'> 
       <asp:PlaceHolder runat="server" ID="pHolder" /> 
      </asp:Panel> 
      <asp:Panel DefaultButton="btnGroup" runat="server" ID="editLinkButton" Visible='<%# SelectId != Convert.ToInt32(Eval("VisitID")) %>'> 
       <asp:LinkButton ID="btnGroup" ForeColor='<%# Eval("VisitorGroupID") != DBNull.Value ? Color.Black : Color.Empty %>' ToolTip="TRNSLTVisitorGroupName" runat="server" Text='<%# Eval("VisitorGroupID") == DBNull.Value ? "TRNSLTVisitorGroupName" : Eval("VisitorGroupName") %>' CommandName="selectGroup" CommandArgument='<%# Eval("VisitID") %>' /> 
      </asp:Panel> 
     </td> 
    </ItemTemplate> 
</asp:Repeater> 

のC# ?jQueryのは、おそらく

+0

どのボタンを使用しますか? – levent

+0

ID = "btnGroup"で表示されるリンクボタン – Malphai

答えて

1

enterキーの押下をキャプチャするリピータには何も存在しないようです。通常、DefaultButtonは、1つまたは複数のTextBoxコントロールに関連付けられています。

input type=text要素内でenterが押されたときのデフォルトのブラウザ動作はフォームポストです。したがって、デフォルトのボタンを割り当てることで、正しいフォームがaspnetで確実に処理されます。

スニペットを試してみると、rptVisitedItem_OnItemDataBoundのコードがなくても動作することがわかります。テキストボックス内でEnterキーを押すと、対応するbtnGroupボタンが押されます。

<asp:Panel DefaultButton="btnGroup" runat="server" ID="editLinkButton"> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:LinkButton ID="btnGroup" runat="server" Text="Test me" CommandName="selectGroup" CommandArgument='<%# Eval("VisitID") %>' /> 
</asp:Panel> 
1

(jQueryのが必要です)、これを試してください:

using System.Web.UI.WebControls; 

.... 

protected void rptVisitedItem_OnItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    .... 
    LinkButton lbn = (LinkButton)e.Item.FindControl("btnGroup"); 
    lbn.Attributes.Add("onkeypress", "__doPostBack('<%= lbn.UniqueID %>', '')"); 
    .... 
} 
+1

追加情報:タイプ 'System.Web.UI.WebControls.LinkBut​​ton'のオブジェクトをキャストして 'System.Web.UI'と入力できません.HtmlControls.HtmlInputButton ' – Malphai

+0

編集した回答を試してください –

+0

それでもうまくいきませんでした。 – Malphai

関連する問題