zoukankan      html  css  js  c++  java
  • 动态改写用户控件

    起因:最近看CMS,为了适应极度变态的需求~~

    直接贴图:

     

    源代码:

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.IO;
    using BaiChang.HeaBlog.Entity;
    using BaiChang.HeaBlog.Framework;

    namespace BaiChang.HeaBlog.WebSite.PreReal
    {
        
    public partial class ShowHealDiary : BaiChang .HeaBlog .Framework .HttpHandler.UserPage
        {
            
    string rootPath = "~/PreReal/Control/";
            
    string currPath = string.Empty;

            
    protected void Page_Load(object sender, EventArgs e)
            {
                
    if (!IsPostBack)
                {
                    BindFilesToDropDownList();
                }
                    currPath 
    = ddlFileChoose.SelectedItem.Value;
                
    if(!IsPostBack )
                {
                    ReadFiles();
                }
            }

            
    protected void ddlFileChoose_SelectedIndexChanged(object sender, EventArgs e)
            {
                currPath 
    = ddlFileChoose.SelectedItem.Value;
                ReadFiles();
            }

            
    protected void btnSave_Click(object sender, EventArgs e)
            {
                File.WriteAllText(Server .MapPath ( currPath), txtPage.Text, System.Text.Encoding.Default);
                File.WriteAllText(Server.MapPath(currPath 
    + ".cs"), txtCode.Text, System.Text.Encoding.Default);
            }

            
    protected void btnPreview_Click(object sender, EventArgs e)
            {
                PreViewPart.Visible 
    = true;
                PreViewPart.Controls.Add(LoadControl(currPath));
            }

            
    #region Helper
            
    void BindFilesToDropDownList()
            {
                
                
    string[] files = Directory.GetFiles(Server.MapPath(rootPath),"*.ascx");
                files.ToList().ForEach(it 
    =>
                {
                    FileInfo info 
    = new FileInfo(it);
                    ddlFileChoose.Items.Add(
    new ListItem(info.Name, rootPath+info.Name));
                });
            }

            
    void ReadFiles()
            {
                txtPage.Text 
    = File.ReadAllText(Server.MapPath(currPath), System.Text.Encoding.Default);
                txtCode.Text 
    = File.ReadAllText(Server.MapPath(currPath + ".cs"), System.Text.Encoding.Default);
            }
            
    #endregion
        }
    }


    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    vue-router路由器的使用
    组件间数据传递
    引用模块和动态组件
    vue自定义全局和局部指令
    vue实例的属性和方法
    vue生命周期以及vue的计算属性
    vue 发送ajax请求
    安装vue-cli脚手架
    vue指令详解
    scrapy-redis组件的使用
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1631614.html
Copyright © 2011-2022 走看看