c# – updatepanel中的asp.net linkbutton不会触发

前端之家收集整理的这篇文章主要介绍了c# – updatepanel中的asp.net linkbutton不会触发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个asp.net Web应用程序.在我的.aspx页面中,我有一个更新面板,其中我有3个asp:LinkBut​​ton,它应该调用c#代码.问题是onclick不起作用.

以下是代码的外观:

  1. <div id="div1">
  2. <asp:UpdatePanel ID="UpdatePanel2" runat="server">
  3. <ContentTemplate>
  4. <ul>
  5. <li><asp:LinkButton ID="lnk_1" runat="server" OnClick="lnk1_Click">Link1</asp:LinkButton></li>
  6. <li><asp:LinkButton ID="lnk_2" runat="server" OnClick="lnk2_Click">Link2</asp:LinkButton></li>
  7. <li><asp:LinkButton ID="lnk_3" runat="server" OnClick="lnk3_Click">Link3</asp:LinkButton></li>
  8. </ul>
  9. <div> some more code here </div>
  10. </ContentTemplate>
  11. <Triggers>
  12. <asp:PostBackTrigger ControlID="lnk_1" />
  13. <asp:PostBackTrigger ControlID="lnk_2" />
  14. <asp:PostBackTrigger ControlID="lnk_3" />
  15. </Triggers>
  16. </asp:UpdatePanel>
  17. </div>

代码有什么问题?我也尝试过使用AsyncPostBackTrigger,但仍然无法正常工作.

根本没有调用后面的代码.

我也曾尝试在Google上搜索但无法找到解决方案.

解决方法

你很近.几件事:

>您的触发器应该是您尝试过的AsyncPostBackTriggers.
>您的触发器需要一个事件名称.
>建议:这不会阻止您的事件被触发,但除非您希望每个可以发生的事件导致回发,否则请将UpdateMode =“Conditional”添加到您的UpdatePanel.

这是一个有效的例子.

Web表单 – WebForm1.aspx:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AspDotNetStorefront.WebForm1" %>
  2.  
  3. <!DOCTYPE html>
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head runat="server">
  7. <title></title>
  8. </head>
  9. <body>
  10. <form id="form1" runat="server">
  11. <asp:ScriptManager runat="server"></asp:ScriptManager>
  12. <div id="div1">
  13. <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
  14. <ContentTemplate>
  15. <ul>
  16. <li><asp:LinkButton ID="lnk_1" runat="server" OnClick="lnk1_Click">Never clicked</asp:LinkButton></li>
  17. </ul>
  18. </ContentTemplate>
  19. <Triggers>
  20. <asp:AsyncPostBackTrigger ControlID="lnk_1" EventName="Click" />
  21. </Triggers>
  22. </asp:UpdatePanel>
  23. </div>
  24. </form>
  25. </body>
  26. </html>

CodeBehind – WebForm1.aspx.cs:

  1. using System;
  2.  
  3. namespace AspDotNetStorefront
  4. {
  5. public partial class WebForm1 : System.Web.UI.Page
  6. {
  7. private static int _clickedCount = 0;
  8.  
  9. protected void lnk1_Click(object sender,EventArgs e)
  10. {
  11. ++_clickedCount;
  12. var suffix = _clickedCount <= 1 ? "time" : "times";
  13. lnk_1.Text = string.Format("Clicked {0} {1}",_clickedCount,suffix);
  14. }
  15. }
  16. }

猜你在找的C#相关文章