zoukankan      html  css  js  c++  java
  • 使用RenderControl方法实现动态加载用户控件

    Insus.NET相信很多网友们均会动态加加载用户控件。如Insus.NET以前写的博文:
    http://www.cnblogs.com/insus/archive/2012/04/16/2451085.html
    http://www.cnblogs.com/insus/articles/2023678.html
    或是与用户控件相关的博文:http://www.cnblogs.com/insus/category/341697.html


    不过,此次Insus.NET想使用控件的RenderControl方法来实现动态加载用户控件。
    在站点中,创建一个用户控件,写一些文件以及拉一张图片。

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="InsusUserControl.ascx.cs" Inherits="InsusUserControl" %>
    Insus.NET create a user control in here.<br />
    The below is microsoft browser logo:<br />
    <img src="Images/ie.gif" />
    InsusUserControl.ascx

     
    在站点中,创建一个.aspx网页中,并拉一个控件:

     <asp:Literal ID="Literal1" runat="server"></asp:Literal>


    在.aspx.cs中,写一个私有方法,Render用户控件为字符串,它带一个参数,是传入用户控件文件名,当然包含它的所在目录。

    在.aspx.cs的Page_Load事件中,就可以获取用户控件Render之后的字符串,赋值给Literal控件

     protected void Page_Load(object sender, EventArgs e)
        {
            Literal1.Text = RenderUserControlToString("InsusUserControl.ascx");
        }


    为了解决在control.RenderControl()方法执行时,产生的异常,还需要在网页中override写两个方法:

     public override void VerifyRenderingInServerForm(Control control)
        {  }
    
        public override bool EnableEventValidation
        {
            get { return false; }
            set { }
        }
    View Code


    写完了,运行:

  • 相关阅读:
    playbook实现httpd服务安装与配置
    Ansible介绍与安装使用
    Servlet 连接mysql数据库
    day04作业
    day03python作业
    正式课第一天作业
    函数
    周作业
    数据类型
    day03作业
  • 原文地址:https://www.cnblogs.com/insus/p/3105708.html
Copyright © 2011-2022 走看看