C# 当对ENTER键执行任何操作而不是单击按钮时,LinkButton click事件不会触发
ImageButton和LinkButton组合在一个范围内,并与相同的ClickEvent绑定以从当前位置退出。 在同一页面上,有searchTextBox和启动搜索操作的按钮 现在的问题是:C# 当对ENTER键执行任何操作而不是单击按钮时,LinkButton click事件不会触发,c#,asp.net,asplinkbutton,C#,Asp.net,Asplinkbutton,ImageButton和LinkButton组合在一个范围内,并与相同的ClickEvent绑定以从当前位置退出。 在同一页面上,有searchTextBox和启动搜索操作的按钮 现在的问题是: 当我在文本框中输入一些文本并按enter键执行搜索操作(它搜索了数据),然后单击LinkButton退出时,LinkButton事件未触发,但imageButton事件正在触发 做了与上面相同的操作,但我没有点击回车键进行搜索,而是点击了搜索按钮,然后点击链接按钮退出。现在,单击ImageButton
- 当我在文本框中输入一些文本并按enter键执行搜索操作(它搜索了数据),然后单击LinkButton退出时,LinkButton事件未触发,但imageButton事件正在触发
- 做了与上面相同的操作,但我没有点击回车键进行搜索,而是点击了搜索按钮,然后点击链接按钮退出。现在,单击ImageButton和LinkButton就会触发事件
LinkButton newUtilityLink;
//Separator
Panel_UtilityLink.Controls.Add(CreateUtilityLinkSeparator());
HtmlGenericControl span = new HtmlGenericControl("span");
span.ID = "ExitSpanId";
span.AddCssClass("exitspan");
ImageButton buttonExit = new ImageButton();
buttonExit.ID = "IDButtonExit";
buttonExit.ImageUrl = "~/WebResources/Exit.gif";
buttonExit.Click += new ImageClickEventHandler(UtilityLink_Click);
buttonExit.ImageAlign = ImageAlign.Bottom;
span.Controls.Add(buttonExit);
newUtilityLink = new LinkButton();
newUtilityLink.ID = "IDULinkExit";
newUtilityLink.Text = "Exit";
newUtilityLink.Attributes.Add("EVENT", "eventExit");
newUtilityLink.Click += new EventHandler(UtilityLink_Click);
span.Controls.Add(newUtilityLink);
Panel_UtilityLink.Controls.Add(span);
编辑1:HTML代码
编辑2:原因
我觉得真正的原因来自更新面板。点击时,搜索框上的回车键不会执行回发,所以链接不会被绑定。当我在更新面板中添加AutopostBack触发器时,它开始工作,但页面开始闪烁
`<div id="SearchZone" runat="server">
<span id="SearchTextSpan">
<asp:Label ID="Label2" runat="server" meta:resourceKey="LabelSearch" />
<asp:TextBox runat="server" Width="200px" ID="TextBoxSearch" MaxLength="70" />
</span>
<asp:Button runat="server" ID="ButtonSearch" meta:resourceKey="ButtonSearch" cssClass="button" Width="150px" OnClick="ButtonSearch_Click" />
<asp:HiddenField ID="PreviousSearchIndex" runat="server" />
</div>
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ButtonSearch" />
</Triggers>
</asp:UpdatePanel> `
`
`
查看HTML代码,我可以看到LinkButton事件未触发的原因
元素的Id为“IDLinkExit”,而传递给_doPostback的值为“ctl00$IDLinkExit”
比较按下enter键前后的HTML代码,看看id是否发生了变化。您还可以调试代码并查看LinkButton的ClientID值。为什么要将LinkButton和ImageButton放在一起,因为它们的作用相同。在您点击Enter键后,页面会发生什么情况?@nrsharma这没有帮助。链接按钮没有自动回发属性,但我使用了
newUtilityLink.Attributes.Add(“onClick”,“return true;”)代码>@DadyFuji它的功能与带有图像和文本的按钮相同。我知道还有其他方法可以实现这一目标,但这是存在的,很少有情况需要改变it@Andrei它的行为与单击“搜索”按钮后的行为相同。单击“回车”和单击“搜索”按钮后的html相同