📄 adocmdmanager.ascx.cs
字号:
namespace Seaskyer.WebApp.skyNews.Pages.AdminMSC
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Seaskyer.Strings;
using Seaskyer.WebApp.Utility;
/// <summary>
/// AdoCmdManager : AdoCmd 管理器。
/// </summary>
public class AdoCmdManager : basePage
{
protected Label pageLabel;
protected Panel Panel1, Panel2, Panel3;
protected DataGrid DataGrid1;
protected Repeater Repeater1;
protected Button Button1, Submit, Delete, Copy;
protected HtmlInputHidden id;
protected HtmlInputButton AddNew, Back;
protected TextBox CmdID, TableName, sqlStr, description;
protected RadioButtonList isSYS;
private void Page_Load(object sender, System.EventArgs e)
{
if( !user.IsAdmin )
{
base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
return;
}
else
{
this.initPage();
}
if( Object.Equals(Request.QueryString["tableName"], null) || Object.Equals(Request.QueryString["tableName"], "") )
{
this.BindtableList();
}
else if( !Object.Equals(Request.QueryString["tableAction"], null) && !Object.Equals(Request.QueryString["tableAction"], ""))
{
// 表操作
string tableAction = Request.QueryString["tableAction"];
switch( tableAction )
{
case "AddNew" : // 添加表
break;
case "Change" : // 修改表
break;
case "Delete" : // 删除表
break;
}
}
else
{
if( Object.Equals(Request.QueryString["indexID"], null) || Object.Equals(Request.QueryString["indexID"], "") )
{
if( Object.Equals(Request.QueryString["Action"], "AddNew") )
{
// 加载添加新命令行窗体
this.BindAddCmdInfo(Request.QueryString["tableName"].ToString());
}
else
{
// 绑定指定 tableName 的所有命令列表
this.BindtableCmdInfo(Request.QueryString["tableName"].ToString());
}
}
else
{
if( Object.Equals(Request.QueryString["Action"], "Delete") )
{
// 执行删除指定 tableName 下的指定 CmdID 的信息
}
else
{
// 绑定指定 indexID 的命令信息(用于修改操作)
this.BindAdoCmdInfo(Request.QueryString["indexID"]);
}
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
void initPage()
{
Panel1.Visible = false;
Panel2.Visible = false;
Panel3.Visible = false;
pageLabel.Visible = false;
Button1.Visible = false;
Submit.Visible = false;
Delete.Visible = false;
Copy.Visible = false;
AddNew.Visible = false;
Back.Visible = false;
}
#region 响应添加/修改表事件
protected void Button1_OnClick(object sender, EventArgs e)
{
if( !user.IsAdmin )
{
base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
return;
}
}
#endregion
#region 响应添加/修改命令事件
protected void Submit_OnClick(object sender, EventArgs e)
{
if( !user.IsAdmin )
{
base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
return;
}
// 构造DataTable
DataTable dt = new DataTable();
DataRow dr;
dr = dt.NewRow();
dt.Columns.Add("@ID"); dr[0] = CmdID.Text;
dt.Columns.Add("@tableName"); dr[1] = TableName.Text;
dt.Columns.Add("@System"); dr[2] = isSYS.SelectedValue;
dt.Columns.Add("sqlStr"); dr[3] = Function.convertXmlString(sqlStr.Text);
dt.Columns.Add("description"); dr[4] = description.Text;
dt.Rows.Add(dr);
if( Object.Equals(Request.QueryString["Action"], "AddNew") )
{
if( cmd.Contains(TableName.Text, CmdID.Text) )
{
user.MessageShowBack("您所添加的命令ID “" + CmdID.Text + "”在表“" + TableName.Text + "”中已经存在。");
}
// 开始添加
cmd.Add(TableName.Text, dt);
}
else
{
if( cmd.Contains(TableName.Text, CmdID.Text) && (CmdID.Text != id.Value) )
{
user.MessageShowBack("您所修改的命令ID “" + CmdID.Text + "”在表“" + TableName.Text + "”中已经存在。");
}
// 开始修改
cmd.Set(TableName.Text, id.Value, dt);
}
Response.Redirect(base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + TableName.Text);
}
#endregion
#region 响应复制命令事件
protected void Copy_OnClick(object sender, EventArgs e)
{
if( !user.IsAdmin )
{
base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
return;
}
cmd.CopyTo(TableName.Text, id.Value);
Response.Redirect(base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + TableName.Text);
}
#endregion
#region 响应删除命令事件
protected void Delete_OnClick(object sender, EventArgs e)
{
if( !user.IsAdmin )
{
base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
return;
}
if( Object.Equals(Request.Form["chk"], null) || Object.Equals(Request.Form["chk"], "") )
{
Response.Write("<script>alert('请选择您要删除的命令(可多选)。');history.back();</" + "script>");
Response.End();
}
string tableName = Request.QueryString["tableName"];
string[] idArray = Function.SplitArray(Request.Form["chk"], ',');
for( int i = 0; i < idArray.Length; i++ )
{
cmd.Remove(tableName, idArray[i]);
}
this.BindtableCmdInfo(tableName);
}
#endregion
#region 初始化DataGrid中子控件的属性
protected void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemIndex >= 0)
{
e.Item.Attributes.Add("onmouseover","this.className='tdbg-dark';");
e.Item.Attributes.Add("onmouseout","this.className='tdbg';");
}
switch(e.Item.ItemType)
{
case ListItemType.Item :
case ListItemType.AlternatingItem :
case ListItemType.EditItem :
HyperLink hl = (HyperLink)e.Item.FindControl("btnChange");
hl.NavigateUrl = base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + DataGrid1.DataKeys[(int)e.Item.ItemIndex];
break;
}
}
#endregion
/// <summary>
/// AdoCmd中的表列表
/// </summary>
void BindtableList()
{
Panel1.Visible = true;
DataTable dt = cmd.GetAdoCmdTableList();
DataGrid1.DataSource = dt.DefaultView;
DataGrid1.DataBind();
pageLabel.Text = "共有表 " + dt.Rows.Count + " 个";
pageLabel.Visible = true;
}
/// <summary>
/// AdoCmd中某个表的命令集合
/// </summary>
void BindtableCmdInfo(string tableName)
{
Panel2.Visible = true;
DataTable dt = cmd.GetAdoCmdInfo(tableName);
Repeater1.DataSource = dt.DefaultView;
Repeater1.DataBind();
pageLabel.Text = "共有命令 " + dt.Rows.Count + " 条";
pageLabel.Visible = true;
AddNew.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?Action=AddNew&tableName=" + tableName + "';");
AddNew.Visible = true;
Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx';");
Back.Visible = true;
Delete.Visible = true;
}
/// <summary>
/// 初始化修改页面的窗体内容
/// </summary>
/// <param name="indexID"></param>
void BindAdoCmdInfo(string indexID)
{
Panel3.Visible = true;
Submit.Visible = true;
Submit.Text = "修 改";
DataTable dt = cmd.GetAdoCmdInfo(Request.QueryString["tableName"], indexID);
if( dt.Rows.Count == 1 )
{
id.Value = dt.Rows[0]["@id"].ToString();
CmdID.Text = dt.Rows[0]["@id"].ToString();
TableName.Text = Request.QueryString["tableName"]; TableName.ReadOnly = true;
for( int i = 0; i < isSYS.Items.Count; i++ )
{
if( isSYS.Items[i].Value == dt.Rows[0]["@System"].ToString() ) isSYS.Items[i].Selected = true;
else
isSYS.Items[i].Selected = false;
}
sqlStr.Text = dt.Rows[0]["sqlStr"].ToString();
description.Text = dt.Rows[0]["description"].ToString();
}
dt.Clear();
dt.Dispose();
Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?tableName=" + TableName.Text + "';");
Back.Visible = true;
Copy.Attributes.Add("onclick", "if(!confirm('您确定要复制命令“" + id.Value + "”吗?'))return false;");
Copy.Visible = true;
}
/// <summary>
/// 初始化添加页面的窗体内容
/// </summary>
void BindAddCmdInfo(string tableName)
{
Panel3.Visible = true;
Submit.Visible = true;
Submit.Text = "新 建";
CmdID.Text = tableName + "_";
TableName.Text = tableName; TableName.ReadOnly = true;
Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?tableName=" + tableName + "';");
Back.Visible = true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -