📄 ctleditmodule.ascx.cs
字号:
using System;
using System.Web.UI.WebControls;
using DNNLite.Entites.Modules;
using System.IO;
public partial class admin_Portal_ModuleDefinitions_ctlEditModule : System.Web.UI.UserControl
{
public delegate void dgeevent();
public event dgeevent Back;
public event dgeevent Save;
public event dgeevent Delete;
public enum modulectlmode
{
Edit, Add
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dplControls.Items.Clear();
string[] ctl = Directory.GetFiles(Server.MapPath("~/DeskTopModules"), "*.ascx", SearchOption.AllDirectories);
dplControls.Items.Add("<没有选择>");
for (int i = 0; i < ctl.Length; i++)
{
dplControls.Items.Add(ctl[i].Replace(Server.MapPath("~/"), "/").Replace("\\", "/"));
}
}
}
public string DeskTopModuleId
{
get { return ViewState["desktopmoduleid"].ToString(); }
set { ViewState["desktopmoduleid"] = value; }
}
public modulectlmode Mode
{
get { return (modulectlmode)ViewState["mode"]; }
set { ViewState["mode"] = value; }
}
public void BindData()
{
DesktopModuleInfo m = null;
if (Mode == modulectlmode.Edit)
{
m = DesktopModuleInfo.Find(DeskTopModuleId);
pnlDef.Visible = true;
}
else
{
m = new DesktopModuleInfo();
pnlDef.Visible = false;
}
txtControllerClass.Text = m.BusinessControllerClass;
txtDescription.Text = m.Description;
txtFolderName.Text = m.FolderName;
txtFriendlyName.Text = m.FriendlyName;
txtModuleName.Text = m.ModuleName;
txtVersion.Text = m.Version;
txtModuleDefName.Text = "";
/*显示模块功能组定义*/
dplModuleDefinitions.DataSource = m.ModuleDefinitions;
dplModuleDefinitions.DataTextField = "FriendlyName";
dplModuleDefinitions.DataValueField = "ModuleDefId";
dplModuleDefinitions.DataBind();
if (m.ModuleDefinitions.Count == 0)
{
linkAddControl.Visible = false;
Image7.Visible = false;
}
else
{
linkAddControl.Visible = true;
Image7.Visible = true;
}
dplModuleDefinitions_SelectedIndexChanged(this, new EventArgs());
}
protected void dplModuleDefinitions_SelectedIndexChanged(object sender, EventArgs e)
{
if (dplModuleDefinitions.Items.Count == 0)
return;
try
{
ModuleDefinitionInfo def = ModuleDefinitionInfo.Find(dplModuleDefinitions.SelectedValue);
txtCacheTime.Text = def.DefaultCacheTime.ToString();
/*绑定控件组*/
grdControls.DataSource = def.ModuleControls;
grdControls.DataBind();
}
catch (Exception ex)
{
lblerr.Text = ex.Message;
}
}
#region "Events"
private void OnBack()
{
if (Back != null)
Back();
}
private void OnSave()
{
if (Save != null)
Save();
}
private void OnDelete()
{
if (Delete != null)
Delete();
}
#endregion
protected void lnkBtnBack_Click(object sender, EventArgs e)
{
OnBack();
}
protected void lnkDelete_Click(object sender, EventArgs e)
{
if (Mode == modulectlmode.Add)
return;
DesktopModuleInfo d = DesktopModuleInfo.Find(DeskTopModuleId);
d.DeleteAndFlush();
OnDelete();
}
/*********保存模块主体**********/
protected void lnkBtnSave_Click(object sender, EventArgs e)
{
DesktopModuleInfo m = null;
if (Mode == modulectlmode.Edit)
{
m = DesktopModuleInfo.Find(DeskTopModuleId);
}
else
{
m = new DesktopModuleInfo();
}
m.BusinessControllerClass = txtControllerClass.Text;
m.Description = txtDescription.Text;
m.FolderName = txtFolderName.Text;
m.FriendlyName = txtFriendlyName.Text;
m.ModuleName = txtModuleName.Text;
m.Version = txtVersion.Text;
if (!m.IsValid())
{
lblerr.Text = m.ValidationErrorMessages[0];
return;
}
m.SaveAndFlush();
Mode = modulectlmode.Edit;
DeskTopModuleId = m.DeskTopModuleId.ToString();
BindData();
DNNLite.Service.Cache.CacheFactory.CacheService("system").Refresh();
}
/**********更新缓存属性*******************/
protected void lnkBtnUpdateCache_Click(object sender, EventArgs e)
{
int c = 0;
if (!int.TryParse(txtCacheTime.Text, out c))
{
lblerr.Text = "缓存时间必须是一个整数";
return;
}
try
{
ModuleDefinitionInfo def = ModuleDefinitionInfo.Find(dplModuleDefinitions.SelectedValue);
def.DefaultCacheTime = c;
def.UpdateAndFlush();
DNNLite.Service.Cache.CacheFactory.CacheService("system").Refresh();
}
catch (Exception ex)
{
lblerr.Text = ex.Message;
}
}
/********删除定义*******/
protected void linkDelDef_Click(object sender, EventArgs e)
{
try
{
ModuleDefinitionInfo def = ModuleDefinitionInfo.Find(dplModuleDefinitions.SelectedValue);
def.DeleteAndFlush();
Cache.Remove("moduledefinitononpage"+ dplModuleDefinitions.SelectedValue );
BindData();
}
catch (Exception ex)
{
lblerr.Text = ex.Message;
}
}
/*新增定义*/
protected void linkAddDef_Click(object sender, EventArgs e)
{
try
{
ModuleDefinitionInfo def = new ModuleDefinitionInfo();
def.FriendlyName = txtModuleDefName.Text;
def.DefaultCacheTime = 0;
if (!def.IsValid())
{
lblerr.Text = def.ValidationErrorMessages[0];
return;
}
DesktopModuleInfo d = DesktopModuleInfo.Find(DeskTopModuleId);
def.DeskTopModule = d;
def.CreateAndFlush();
BindData();
}
catch (Exception ex)
{
lblerr.Text = ex.Message;
}
}
/*********控制文件***********/
private void BindControl(string modulecontrolid)
{
try
{
ViewState["modulecontrolid"] = modulecontrolid;
ModuleDefinitionInfo def = ModuleDefinitionInfo.Find(dplModuleDefinitions.SelectedValue);
ModuleControlInfo c = null;
if (modulecontrolid == "")
{
c = new ModuleControlInfo();
}
else
{
c = ModuleControlInfo.Find(modulecontrolid);
}
lbldefname.Text = def.FriendlyName;
lblDmname.Text = def.DeskTopModule.FriendlyName;
txtControlKey.Text = c.ControlKey;
txtControlTitle.Text = c.ControlTitle;
txtOrder.Text = c.ViewOrder.ToString();
switch (c.ControlType)
{
case DNNLite.Security.SecurityAccessLevel.Anonymous:
dplControlType.SelectedValue = "-1";
break;
case DNNLite.Security.SecurityAccessLevel.View:
dplControlType.SelectedValue = "0";
break;
case DNNLite.Security.SecurityAccessLevel.Edit:
dplControlType.SelectedValue = "1";
break;
case DNNLite.Security.SecurityAccessLevel.Admin:
dplControlType.SelectedValue = "2";
break;
default:
break;
}
dplControls.SelectedIndex = 0;
for (int i = 1; i < dplControls.Items.Count; i++)
{
if (c.ControlSrc.ToLower()==("~" + dplControls.Items[i].Text).ToLower())
{
dplControls.SelectedIndex = i;
break;
}
}
}
catch (Exception ex)
{
lblerr.Text = ex.Message;
}
}
protected void grdControls_RowCommand(object sender, GridViewCommandEventArgs e)
{
BindControl(e.CommandArgument.ToString());
MultiView1.ActiveViewIndex = 1;
}
protected void lnkCancelControl_Click(object sender, EventArgs e)
{
MultiView1.ActiveViewIndex = 0;
}
/*删除控制文件*/
protected void lnkDelControl_Click(object sender, EventArgs e)
{
if (ViewState["modulecontrolid"].ToString() == "")
return;
try
{
ModuleControlInfo c = ModuleControlInfo.Find(ViewState["modulecontrolid"].ToString());
c.DeleteAndFlush();
dplModuleDefinitions_SelectedIndexChanged(sender, e);
MultiView1.ActiveViewIndex = 0;
}
catch (Exception ex)
{
lblerr2.Text = ex.Message;
}
}
/*保存控制文件*/
protected void linkSaveControl_Click(object sender, EventArgs e)
{
try
{
if (string.IsNullOrEmpty(txtOrder.Text))
txtOrder.Text = "0";
ModuleDefinitionInfo def = ModuleDefinitionInfo.Find(dplModuleDefinitions.SelectedValue);
ModuleControlInfo c = null;
if (ViewState["modulecontrolid"].ToString() == "")
{
c = new ModuleControlInfo();
}
else
{
c = ModuleControlInfo.Find(ViewState["modulecontrolid"].ToString());
}
c.ControlKey = txtControlKey.Text;
c.ControlSrc = "~" + dplControls.SelectedItem.Text;
c.ControlTitle = txtControlTitle.Text;
c.ControlType = (DNNLite.Security.SecurityAccessLevel)Enum.Parse(typeof(DNNLite.Security.SecurityAccessLevel), dplControlType.SelectedValue);
c.ModuleDefinition = def;
c.ViewOrder = int.Parse(txtOrder.Text);
c.SaveAndFlush();
dplModuleDefinitions_SelectedIndexChanged(sender, e);
MultiView1.ActiveViewIndex = 0;
DNNLite.Service.Cache.CacheFactory.CacheService("system").Refresh();
Cache.Remove("moduledefinitononpage" + dplModuleDefinitions.SelectedValue);
}
catch (Exception ex)
{
lblerr2.Text = ex.Message;
}
}
protected void linkAddControl_Click(object sender, EventArgs e)
{
BindControl("");
MultiView1.ActiveViewIndex = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -