我的问题很简单,无论如何都要绑定"输入"转发器中asp网络链接的关键? (我已尝试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来做这件事吗?
答案 0 :(得分: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 :(得分:1)
您的转发器中似乎没有任何内容可以捕获enter
键的按键。通常,DefaultButton
与一个或多个TextBox控件相关联。
在enter
元素中按下input type=text
时,默认浏览器行为是表单帖子。因此,分配默认按钮将确保使用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>