asp.net - 从 .ascx 动态加载 ListView 模板

标签 asp.net listview itemtemplate

我用这个http://blogs.msdn.com/b/mikeormond/archive/2008/07/26/dynamically-loading-listview-templates.aspx文章作为动态加载模板的示例(来自 .ascx 文件)。

这是作者代码:

     protected void Page_Load(object sender, EventArgs e)
    {

        ListView1.LayoutCreated += new EventHandler(ListView1_LayoutCreated);
        ListView1.LayoutTemplate = LoadTemplate("LayoutTemplate.ascx");
        ListView1.ItemTemplate = LoadTemplate("ItemTemplate.ascx");
    }

    void ListView1_LayoutCreated(object sender, EventArgs e)
    {
        //remove the layout template
        ListView1.Controls.RemoveAt(0);

        //recreate it
        Control newLayoutContainer = new Control();
        ListView1.LayoutTemplate.InstantiateIn(newLayoutContainer);
        var userControl = newLayoutContainer.Controls[0];
        userControl.ID = "MyLayout";
        ListView1.Controls.Add(newLayoutContainer);
    }

它给出错误:

必须在 ListView“ListView1”上定义 ItemTemplate。

回发后。

怎么了?我应该在每次回发时创建 ListView (http://forums.asp.net/p/1305569/2558209.aspx)吗?

最佳答案

要解决您的问题,请执行以下操作:

<script runat="server">

   protected void ListView_Init(object sender, EventArgs e)
    {

         ListView1.ItemTemplate = LoadTemplate("ItemTemplate2.ascx");

    }

</script>

<asp:ListView ....   OnInit="ListView_Init">

关于asp.net - 从 .ascx 动态加载 ListView 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904570/

相关文章:

javascript - 回发时 Gridview 内的下拉菜单不保留背景颜色

c# - 如何从 Postman 获取表单数据到 WebApi

Android - ListView 被填充两次

c# - 禁用排序 ListView

Android 自定义节标题 View

c# - 如何从 WPF 中的列表框中删除选中的项目?

asp.net - jQuery 在 LinkBut​​ton 上调用 __doPostBack

wpf - ItemsControl 与 SharedSizeGroup 和拉伸(stretch)

asp.net - 如何在内联 if 语句中使用数据绑定(bind)记录

c# - 获取网站的 URL