Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当对ENTER键执行任何操作而不是单击按钮时,LinkButton click事件不会触发_C#_Asp.net_Asplinkbutton - Fatal编程技术网

C# 当对ENTER键执行任何操作而不是单击按钮时,LinkButton click事件不会触发

C# 当对ENTER键执行任何操作而不是单击按钮时,LinkButton click事件不会触发,c#,asp.net,asplinkbutton,C#,Asp.net,Asplinkbutton,ImageButton和LinkButton组合在一个范围内,并与相同的ClickEvent绑定以从当前位置退出。 在同一页面上,有searchTextBox和启动搜索操作的按钮 现在的问题是: 当我在文本框中输入一些文本并按enter键执行搜索操作(它搜索了数据),然后单击LinkButton退出时,LinkButton事件未触发,但imageButton事件正在触发 做了与上面相同的操作,但我没有点击回车键进行搜索,而是点击了搜索按钮,然后点击链接按钮退出。现在,单击ImageButton

ImageButton和LinkButton组合在一个范围内,并与相同的ClickEvent绑定以从当前位置退出。 在同一页面上,有searchTextBox和启动搜索操作的按钮

现在的问题是:

  • 当我在文本框中输入一些文本并按enter键执行搜索操作(它搜索了数据),然后单击LinkButton退出时,LinkButton事件未触发,但imageButton事件正在触发
  • 做了与上面相同的操作,但我没有点击回车键进行搜索,而是点击了搜索按钮,然后点击链接按钮退出。现在,单击ImageButton和LinkButton就会触发事件
当我按ENTER键搜索文本时,为什么只有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" />
             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       <asp:TextBox runat="server" Width="200px" ID="TextBoxSearch" MaxLength="70" />
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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相同