Я пытаюсь динамически создавать список элементов управления внутри панели обновлений и запускать событие из кнопки в указанном списке элементов управления.UpdatePanel и динамически сгенерированные элементы управления
Однако, когда я нажимаю на сгенерированный элемент управления, вместо того, чтобы фактически запускать триггер, моя страница делает обратную передачу и никогда не попадает в точку останова, которую я ожидал бы, вместо этого она запускает только события загрузки страницы/страницы.
Что мне не хватает?
default.aspx
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test._Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<asp:Button ID="add" Text="add" runat="server" OnClick="add_Click"/>
<asp:updatepanel runat="server" id="test" ChildrenAsTriggers ="false" UpdateMode="Conditional">
<ContentTemplate></ContentTemplate>
</asp:updatepanel>
</asp:Content>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void add_Click(object sender, EventArgs e)
{
var container = test.ContentTemplateContainer;
container.Controls.Clear();
Literal literal = new Literal();
literal.Text = DateTime.Now.ToString();
literal.ID = DateTime.Now.Ticks.ToString();
container.Controls.Add(literal);
Button btn = new Button();
btn.Text = "123";
btn.Click += new EventHandler(btnClick);
container.Controls.Add(btn);
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btn.UniqueID;
trigger.EventName = "Click";
test.Triggers.Add(trigger);
}
protected void btnClick(object sender, EventArgs e) {
System.Diagnostics.Debugger.Break(); //never gets hit
var abc = 16;
}
}
}