⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctleditmodule.ascx.cs

📁 如果不使用IIS,请先运行 XSP.exe,待提示已侦听 8080端口后
💻 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 + -