C# 在asp.net中单击按钮,以编程方式将控件添加到ajax更新面板
我想在“更新”面板上添加标签,单击按钮。。 我在.aspx文件中有以下代码C# 在asp.net中单击按钮,以编程方式将控件添加到ajax更新面板,c#,asp.net,ajax,C#,Asp.net,Ajax,我想在“更新”面板上添加标签,单击按钮。。 我在.aspx文件中有以下代码 <asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" > <ContentTemplate > <asp:Panel runat="server" ID="myPanel" &g
<asp:UpdatePanel ID="up" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >
<ContentTemplate >
<asp:Panel runat="server" ID="myPanel" >
<label id="ssd" runat="server" >abc</label>
</asp:Panel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="test"/>
</ContentTemplate>
</asp:UpdatePanel>
但它不起作用:-(由于
更新面板的UpdateMode设置为条件的,您需要从codebehind手动更新它:
protected void Button1_Click(object sender, EventArgs e)
{
Label l1 = new Label();
l1.ID = "label1";
l1.Text = "this is it...";
up.ContentTemplateContainer.Controls.Add(l1);
up.Update();
}
MSDN
如果计划使用Update方法,请将UpdateMode属性设置为
有条件。如果您希望决定更新服务器中的面板
逻辑,确保ChildrenAsTriggers属性为false,并且
没有为面板定义显式触发器
在典型的页面开发场景中,如果您定义了触发器或
UpdatePanel控件的ChildrenAsTriggers属性为true,
更新方法在页面生命周期内自动调用
请注意,即使使用ASP.NET Ajax,您也需要重新创建动态控件。因此,您最迟需要在下一次回发时在page\u load
中手动创建标签。protected void page\u load(object sender,EventArgs e){label l1=new label();l1.ID=“label1”;l1.Text=“就是这样…”;this.form1.Controls.Add(l1);}即使这并没有将标签添加到我的页面:-(
protected void Button1_Click(object sender, EventArgs e)
{
Label l1 = new Label();
l1.ID = "label1";
l1.Text = "this is it...";
up.ContentTemplateContainer.Controls.Add(l1);
up.Update();
}