簡體   English   中英

綁定輸入密鑰到asp net linkbutton repeater

[英]binding enter key to asp net linkbutton repeater

我的問題很簡單,無論如何將“enter”鍵綁定到轉發器中的asp net linkbutton? (我嘗試過DefaultButton屬性,但它不起作用。這是我的代碼:

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#:

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或jQuery可能嗎?

請嘗試這個(需要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 %>', '')");
    ....
}

您的轉發器中似乎沒有任何東西可以捕獲按下enter鍵的內容。 通常, DefaultButton與一個或多個TextBox控件相關聯。

input type=text元素中按下enter時,默認瀏覽器行為是Form Post。 因此,分配默認按鈕將確保使用aspnet處理正確的表單。

如果您嘗試下面的代碼片段,即使沒有rptVisitedItem_OnItemDataBound的代碼,您也會看到它有效。 在文本btnGroupbtnGroup鍵,將觸發相應的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM