📄 classadmin.ascx.cs
字号:
namespace Seaskyer.WebApp.skyNews.Pages.AdminMSC
{
using System;
using System.Data;
using System.Collections;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Seaskyer.Strings;
/// <summary>
/// ClassAdmin : 管理新闻分类。
/// </summary>
public class ClassAdmin : basePage
{
protected DataGrid DataGrid1;
protected Label message;
protected System.Web.UI.WebControls.TextBox className;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator;
protected System.Web.UI.HtmlControls.HtmlInputHidden classid;
protected System.Web.UI.WebControls.Button DeleSubmit;
protected System.Web.UI.WebControls.Button DeleReturn;
protected System.Web.UI.WebControls.CheckBox delenewsCheck;
protected System.Web.UI.WebControls.Panel SortPanel;
protected System.Web.UI.WebControls.Label labelName;
protected System.Web.UI.WebControls.ListBox sortRules;
protected System.Web.UI.WebControls.Button SortSubmit;
protected System.Web.UI.WebControls.Button SortReturn;
protected System.Web.UI.WebControls.Button UpSort;
protected System.Web.UI.WebControls.Button DownSort;
protected System.Web.UI.WebControls.DropDownList cid;
protected System.Web.UI.WebControls.Panel DeleteConfirm;
private void Page_Load(object sender, System.EventArgs e)
{
this.InitPage();
if(!Page.IsPostBack)
{
this.GridBind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DeleSubmit.Click += new System.EventHandler(this.DeleSubmit_Click);
this.DeleReturn.Click += new System.EventHandler(this.DeleReturn_Click);
this.UpSort.Click += new System.EventHandler(this.UpSort_Click);
this.DownSort.Click += new System.EventHandler(this.DownSort_Click);
this.SortSubmit.Click += new System.EventHandler(this.SortSubmit_Click);
this.SortReturn.Click += new System.EventHandler(this.SortReturn_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
private void InitPage()
{
DataGrid1.Visible = false;
DeleteConfirm.Visible = false;
SortPanel.Visible = false;
}
#endregion
#region 绑定数据
protected void GridBind()
{
DataGrid1.DataSource = user.classDt.DefaultView;
DataGrid1.DataBind();
DataGrid1.Visible = true;
}
#endregion
#region 去掉DataGrid1的EnableViewState属性,减少发向客户端的数据
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
DataGrid1.Controls[0].EnableViewState = false;
}
#endregion
#region 响应排序/删除事件
protected void DataGrid1_Edit(object sender, DataGridCommandEventArgs e)
{
int item = (int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
DataRow dr = ci[item];
if( dr == null )
{}
else
{
labelName.Text = dr["className"].ToString();
DataTable dt = bind.returnDataTable(user.classDt, "ParentID = " + dr["ParentID"], "SortID ASC", 0);
for( int i = 0; i < dt.Rows.Count; i++ )
{
sortRules.Items.Add(new ListItem(dt.Rows[i]["className"].ToString(), dt.Rows[i]["ClassID"].ToString()+","+dt.Rows[i]["SortID"].ToString()));
if( labelName.Text == dt.Rows[i]["className"].ToString() )
sortRules.Items[i].Selected = true;
else
sortRules.Items[i].Selected = false;
}
dt.Clear();
SortPanel.Visible = true;
}
}
protected void DataGrid1_Delete(object sender, DataGridCommandEventArgs e)
{
int item = (int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
DataRow dr = ci[item];
if( dr == null )
{}
else
{
classid.Value = dr["ChildCollection"].ToString();
className.Text = dr["className"].ToString();
DeleteConfirm.Visible = true;
}
}
#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/ClassAdd.aspx?classid=" + (int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
break;
}
e.Item.Cells[0].Visible = true;
}
#endregion
#region 分类删除和排序代码
/*
* ****************************************
* 以下代码信息: *
* 修 改 日 期 : 2005.08.08 *
* 作者 : 过去 *
* Email : chihuaigang@163.com *
* QQ号码 : 35525957 *
* QQ群号码 : 711255 *
* ****************************************
*/
private void DeleSubmit_Click(object sender, System.EventArgs e)
{
DeleteConfirm.Visible = true;
string deleClassid = classid.Value;
dp.CommandText = String.Format(cmd["aClass", "DELETE"], deleClassid);
//分类的删除
if(dp.NonQuerySQL() > 0)
{
//判断相关新闻的删除
if (delenewsCheck.Checked)
{
dp.CommandText = String.Format(cmd["Article","DELETE_CLASS"], deleClassid);
if (dp.NonQuerySQL() > 0)
{
message.Text = "分类及其相关新闻删除成功!";
message.ForeColor = Color.BlueViolet;
}
else
{
message.Text = "分类删除成功,无相关新闻!";
}
}
else
{
message.Text = "分类删除成功!";message.ForeColor = Color.BlueViolet;
}
//Globals.ClassCollection = null;
Cache.Remove("classCache");
}
else
{
message.Text = "分类删除失败!";message.ForeColor = Color.Red;
}
message.Visible = true;
}
private void DeleReturn_Click(object sender, System.EventArgs e)
{
Response.Redirect(basePath + "Admin/ClassAdmin.aspx");
}
// 确定排序规则
private void SortSubmit_Click(object sender, System.EventArgs e)
{
SortPanel.Visible = true;
for (int i=0;i<sortRules.Items.Count;i++)
{
//取得分类和排序的ID
string itemvalue = sortRules.Items[i].Value;
string [] splititem =itemvalue.Split(new char[] {','});
string _classid=splititem[0].ToString();
string _sortid = splititem[1].ToString();
dp.CommandText = cmd["aClass", "UPDATE_SORT"];
// 开始为参数赋值
dp.Parameter.Add( "SortID", int.Parse(_sortid));
dp.Parameter.Add( "ClassID", _classid);
int Tnum = dp.NonQuerySQL();
if(Tnum > 0)
{
message.Text = "分类更新成功!";message.ForeColor = Color.BlueViolet;
//Globals.ClassCollection = null;
Cache.Remove("classCache");
}
else
{
message.Text = "分类更新失败!";message.ForeColor = Color.Red;
}
}
message.Visible = true;
//Response.Redirect(basePath + "Admin/ClassAdmin.aspx");
}
private void SortReturn_Click(object sender, System.EventArgs e)
{
Response.Redirect(basePath + "Admin/ClassAdmin.aspx");
}
private void UpSort_Click(object sender, System.EventArgs e)
{
int selectedIndex = sortRules.SelectedIndex;
SortPanel.Visible = true;
if( selectedIndex == 0 )
{
UpSort.Enabled = false;
DownSort.Enabled = true;
return;
}
else
{
UpSort.Enabled = true;
DownSort.Enabled = true;
//取得本条记录的名称
string selectedText = sortRules.SelectedItem.Text;
string selectedValue = sortRules.SelectedItem.Value;
string [] splititem =selectedValue.Split(new char[] {','});
string classIdvalue = splititem[0].ToString();
string sortvalue = splititem[1].ToString();
//取得上一条记录的名称
sortRules.SelectedIndex = selectedIndex-1;
string upselectedText = sortRules.SelectedItem.Text;
string upselectedValue = sortRules.SelectedItem.Value;
string [] upsplititem =upselectedValue.Split(new char[] {','});
string upclassIdvalue = upsplititem[0].ToString();
string upsortvalue = upsplititem[1].ToString();
//上下两条记录进行交换
sortRules.SelectedIndex = selectedIndex;
sortRules.SelectedItem.Text = upselectedText;
sortRules.SelectedItem.Value = upclassIdvalue.Trim()+","+sortvalue.Trim();
sortRules.SelectedIndex = selectedIndex-1;
sortRules.SelectedItem.Text = selectedText;
sortRules.SelectedItem.Value = classIdvalue.Trim()+","+upsortvalue.Trim();
}
}
private void DownSort_Click(object sender, System.EventArgs e)
{
int selectedIndex = sortRules.SelectedIndex;
SortPanel.Visible = true;
if( selectedIndex == sortRules.Items.Count - 1 )
{
UpSort.Enabled = true;
DownSort.Enabled = false;
return;
}
else
{
UpSort.Enabled = true;
DownSort.Enabled = true;
//取得本条记录的名称
string selectedText = sortRules.SelectedItem.Text;
string selectedValue = sortRules.SelectedItem.Value;
string [] splititem =selectedValue.Split(new char[] {','});
string classIdvalue = splititem[0].ToString();
string sortvalue = splititem[1].ToString();
//取得下一条记录的名称
sortRules.SelectedIndex = selectedIndex+1;
string downselectedText = sortRules.SelectedItem.Text;
string downselectedValue = sortRules.SelectedItem.Value;
string [] downsplititem =downselectedValue.Split(new char[] {','});
string downclassIdvalue = downsplititem[0].ToString();
string downsortvalue = downsplititem[1].ToString();
//上下两条记录进行交换
sortRules.SelectedIndex = selectedIndex;
sortRules.SelectedItem.Text = downselectedText;
sortRules.SelectedItem.Value = downclassIdvalue.Trim()+","+sortvalue.Trim();
sortRules.SelectedIndex = selectedIndex+1;
sortRules.SelectedItem.Text = selectedText;
sortRules.SelectedItem.Value = classIdvalue.Trim()+","+downsortvalue.Trim();
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -