我有一个 asp.net 网络应用程序。在我的 .aspx
页面中,我有一个更新面板,其中有 3 个 asp:LinkButton
应该调用后面的 c# 代码。问题是 onclick 不起作用。
代码如下:
<div id="div1">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<ul>
<li><asp:LinkButton ID="lnk_1" runat="server" OnClick="lnk1_Click">Link1</asp:LinkButton></li>
<li><asp:LinkButton ID="lnk_2" runat="server" OnClick="lnk2_Click">Link2</asp:LinkButton></li>
<li><asp:LinkButton ID="lnk_3" runat="server" OnClick="lnk3_Click">Link3</asp:LinkButton></li>
</ul>
<div> some more code here </div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="lnk_1" />
<asp:PostBackTrigger ControlID="lnk_2" />
<asp:PostBackTrigger ControlID="lnk_3" />
</Triggers>
</asp:UpdatePanel>
</div>
代码有什么问题?我也尝试过使用 AsyncPostBackTrigger
但仍然不起作用。
后面的代码根本没有被调用。
我也尝试过在 Google 上搜索但找不到解决方案。
最佳答案
你非常接近。几件事:
- 您的触发器应该是您所说的 AsyncPostBackTriggers。
- 您的触发器需要一个事件名称。
- 建议:这不会阻止您的事件触发,但除非您希望每个可发布事件都引起回发,否则请将 UpdateMode="Conditional"添加到您的 UpdatePanel。
这是一个工作示例。
网络表单 - WebForm1.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AspDotNetStorefront.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<div id="div1">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<ul>
<li><asp:LinkButton ID="lnk_1" runat="server" OnClick="lnk1_Click">Never clicked</asp:LinkButton></li>
</ul>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lnk_1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
代码隐藏 - WebForm1.aspx.cs:
using System;
namespace AspDotNetStorefront
{
public partial class WebForm1 : System.Web.UI.Page
{
private static int _clickedCount = 0;
protected void lnk1_Click(object sender, EventArgs e)
{
++_clickedCount;
var suffix = _clickedCount <= 1 ? "time" : "times";
lnk_1.Text = string.Format("Clicked {0} {1}", _clickedCount, suffix);
}
}
}
关于c# - updatepanel 中的 asp.net 链接按钮不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550203/