ImageButton和LinkButton组合在一个范围内,并与相同的ClickEvent绑定以从当前位置退出。 在同一页面上有searchTextBox和按钮以开始搜索操作。
现在的问题是:
当我按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代码
<span class="exitspan" id="ExitSpanId">
<input name="ctl00$IDButtonExit" align="bottom" id="IDButtonExit" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" type="image" src="WebResources/Exit.gif"/>
<a id="IDLinkExit" href="javascript:__doPostBack('ctl00$IDLinkExit','')" EVENT="eventExit">
编辑2:原因
我觉得实际原因来自更新面板。在搜索框上按Enter键不执行回发,因此链接未获得绑定。当我在更新面板中添加了AutopostBack触发器时,它开始工作但是PAGE STARTED FLICKERING。
`<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> `
答案 0 :(得分:1)
查看HTML代码我可以看到没有触发LinkButton事件的原因。
元素的ID是'IDLinkExit',而传递给__doPostback的值是'ctl00 $ IDLinkExit'
比较输入前后的HTML代码,看看ID是否发生了变化。您还可以调试代码并查看LinkButton的ClientID的值。