Javascript 将输入键绑定到asp net链接按钮中继器
我的问题很简单,在repeater中是否有将“enter”键绑定到asp net链接按钮的方法?(Iv'e尝试了Javascript 将输入键绑定到asp net链接按钮中继器,javascript,c#,jquery,asp.net,Javascript,C#,Jquery,Asp.net,我的问题很简单,在repeater中是否有将“enter”键绑定到asp net链接按钮的方法?(Iv'e尝试了DefaultButtonproperty,但无效。以下是我的代码: ASPX: 是否仍有可能使用JavaScript或jQuery执行此操作?请尝试此操作(需要jQuery): 使用System.Web.UI.WebControls; .... 受保护的无效rptVisitedItem\u OnItemDataBound(对象发送方,RepeaterItemEventTarget e
DefaultButton
property,但无效。以下是我的代码:
ASPX:
是否仍有可能使用JavaScript或jQuery执行此操作?请尝试此操作(需要jQuery):
使用System.Web.UI.WebControls;
....
受保护的无效rptVisitedItem\u OnItemDataBound(对象发送方,RepeaterItemEventTarget e)
{
....
LinkButton lbn=(LinkButton)e.Item.FindControl(“btnGroup”);
添加(“onkeypress”、“doPostBack(“”、“)”);
....
}
中继器中似乎没有任何东西可以捕获按下的enter
键。通常,DefaultButton
与一个或多个文本框控件关联
当在input type=text
元素中按下enter
时,默认浏览器行为是表单Post。因此,指定默认按钮将确保使用aspnet处理正确的表单
如果您尝试下面的代码段,您将看到它可以工作,即使没有rptVisitedItem\u 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>
哪个按钮?将有多个按钮..您看到的带有ID=“btnGroup”的链接按钮其他信息:无法将类型为“System.Web.UI.WebControl.LinkButton”的对象强制转换为类型为“System.Web.UI.HtmlControl.HtmlInputButton”。不,当我按enter键时不会发生任何事情。请查看页面源并查找其中一个“btnGroup”并检查是否注册了“onckeypress”事件?是的,似乎已注册。
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;
}
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 %>', '')");
....
}
<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>