繁体   English   中英

ASP.net UpdatePanel 动态使用 C# 代码

[英]ASP.net UpdatePanel dynamically using C# code

我有一个自定义用户控件,其中包含一些 Asp.net 代码。 我想使用 C# 编写相同的代码。 问题是我不知道如何将中继器和一些按钮放入 ContentTemplate。

Asp.net 代码:

<asp:UpdatePanel runat="server" ID="up">

    <ContentTemplate>

        <n2:Repeater ID="rpt" runat="server">
            <ItemTemplate></ItemTemplate>
        </n2:Repeater>

         <asp:LinkButton runat="server" ID="btnFirst" 
           Visible="false" Enabled="false" Text="<<" OnClick="btnFirst_Click" />

    </ContentTemplate>

</asp:UpdatePanel>

那么我怎么能在 C# 代码中写这个块呢? 准确地说,我如何将转发器和链接按钮插入到 ContentTemplate 中。

注意:我不想使用 LoadTemplate 来做到这一点。

编辑

我试过 ContentTemplateContainer.Controls.Add():

    private UpdatePanel up = new UpdatePanel();
    private Repeater rpt = Repeater();;

    public Paging{      

    //Add repeater to updatePanel
    up.ContentTemplateContainer.Controls.Add(rpt);


     AsyncPostBackTrigger apb3 = new AsyncPostBackTrigger();
     apb3.ControlID = "btnFirst";
     apb3.EventName = "Click";

     //Add Triggers to updatePanel
     up.Triggers.Add(apb1);

      //Create buttons
      btnFirst = new LinkButton();
      btnFirst.Visible = false;
      btnFirst.Enabled = false;
      btnFirst.Text = "<<";
      btnFirst.Click += new EventHandler(btnFirst_Click);

     //Add buttons to update panel
       up.ContentTemplateContainer.Controls.Add(btnFirst);

     }

     protected void Page_Load(object sender, EventArgs e)
     {
        rpt.ItemTemplate = LoadTemplate("~/UI/Templates/NewsEvent.ascx");
       ....
     }

我有一个由 Page_Load 上的第一行引起的错误: Eval()、XPath() 和 Bind() 等数据绑定方法只能在页面中包含的控件中使用。

这是 NewsEvent.ascx:

<img src='<%# Eval("ImageThumbnail") %>' alt="" />

你不能用 ITemplate 类型做到这一点......我在尝试在 tabcontainer 控件中克隆一个 tabpanel 时遇到了类似的问题......我已经有一个隐藏的 tabpanel,我想要做的就是创建一个新的 tabpanel 并基本上实例化 ITemplate隐藏的一个在新的。

问题是 ITemplate ......对于交互背后的代码来说,它不是很动态我建议将该标记放在页面上,就像你已经拥有的那样,并在父级上设置 visible = false ,然后当你需要数据绑定并显示隐藏面板时。

让初始绑定工作不是问题......它的回发处理......

Ajax TabContainerTabPanels 中断回发

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM