动态改写用户控件
起因:最近看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
}
}
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
}
}
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2009/12/24/1631614.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2008-12-24 《Asp.Net 2.0 揭秘》读书笔记(四)
2008-12-24 《Asp.Net 2.0 揭秘》读书笔记(三)
2008-12-24 截取字符串时长度的问题
2008-12-24 《Asp.Net 2.0 揭秘》读书笔记(二)