article.aspx.cs
来自「asp做的新闻系统」· CS 代码 · 共 482 行
CS
482 行
using System;
using System.IO;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Web.Admin
{
public class Article : System.Web.UI.Page
{
protected System.Web.UI.WebControls.ImageButton BtnQuery;
protected System.Web.UI.WebControls.Label LabRowCount;
protected System.Web.UI.WebControls.Label LabRowID;
protected System.Web.UI.WebControls.Label LabID;
private DataSet OleDs;
private Web.Common.Common Cmon = new Common.Common();
private Web.DataAccess.DataAccess Das = new DataAccess.DataAccess();
protected System.Web.UI.WebControls.TextBox TxtState;
protected System.Web.UI.WebControls.ImageButton IbtQuery;
protected System.Web.UI.WebControls.TextBox TxtContent;
protected System.Web.UI.WebControls.TextBox TxtTitle;
protected System.Web.UI.WebControls.Panel PalView;
protected System.Web.UI.HtmlControls.HtmlTable Table4;
protected System.Web.UI.WebControls.Panel PalArticle;
protected System.Web.UI.WebControls.DataGrid GrdArticle;
protected System.Web.UI.WebControls.Button BtnView;
protected System.Web.UI.WebControls.Button BtnAdd;
protected System.Web.UI.WebControls.Button BtnEdit;
protected System.Web.UI.WebControls.Button BtnDel;
protected System.Web.UI.WebControls.Button BtnPrevious;
protected System.Web.UI.WebControls.Button BtnNext;
protected System.Web.UI.WebControls.Button BtnSave;
protected System.Web.UI.WebControls.Button BtnCancel;
protected System.Web.UI.HtmlControls.HtmlTable Table1;
const int nGrdRows = 10;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
BindGrdArticle();
TxtState.Text = "0";
PageInit();
}
GrdArticle.Attributes.Add("onclick","javascript:Click('GrdArticle');");
GrdArticle.Attributes.Add("ondblclick","javascript:DbClick('GrdArticle');");
BtnSave.Attributes.Add("OnClick","javascript:return CheckInput();");
BtnDel.Attributes.Add("OnClick","javascript:return Del('GrdArticle');");
BtnView.Attributes.Add("Onclick","javascript:return CheckSelect('GrdArticle','浏览');");
BtnEdit.Attributes.Add("Onclick","javascript:return CheckSelect('GrdArticle','修改');");
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.BtnView.Click += new System.EventHandler(this.BtnView_Click);
this.BtnAdd.Click += new System.EventHandler(this.BtnAdd_Click);
this.BtnEdit.Click += new System.EventHandler(this.BtnEdit_Click);
this.BtnDel.Click += new System.EventHandler(this.BtnDel_Click);
this.BtnPrevious.Click += new System.EventHandler(this.BtnPrevious_Click);
this.BtnNext.Click += new System.EventHandler(this.BtnNext_Click);
this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
this.GrdArticle.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.GrdArticle_PageIndexChanged);
this.GrdArticle.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.GrdArticle_SortCommand);
this.ID = "Form1";
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
//初始化页面控件状态
//LabState:操作状态,0--查询,1--浏览,2--增加,3--修改,4--删除
private void PageInit()
{
int nRow;
int nState = int.Parse(TxtState.Text);
PalView.Visible = (nState != 0) ? true:false;
PalArticle.Visible = (nState == 0) ? true:false;
BtnView.Enabled = (nState == 0) ? true:false;
BtnAdd.Enabled = (nState == 0 || nState == 1) ? true:false;
BtnEdit.Enabled = (nState == 0 || nState == 1) ? true:false;
BtnDel.Enabled = (nState == 0 || nState == 1) ? true:false;
BtnPrevious.Enabled = (nState == 1) ? true:false;
BtnNext.Enabled = (nState == 1) ? true:false;
BtnSave.Enabled = (nState == 2 || nState == 3) ? true:false;
BtnCancel.Enabled = (nState == 1 || nState == 2 || nState == 3) ? true:false;
if(nState == 1)
{
nRow = GetRow();
BtnPrevious.Enabled = (int.Parse(LabRowCount.Text)>=1 && nRow>1)?true:false;
BtnNext.Enabled = (int.Parse(LabRowCount.Text)>=1 && nRow<int.Parse(LabRowCount.Text))?true:false;
}
}
//刷新GrdArticle
private void BindGrdArticle()
{
OleDs = new DataSet();
OleDs=Das.GetDataSet("select * from article order by ID desc");
GrdArticle.DataSource=OleDs;
int nPage=0;
nPage = GrdArticle.CurrentPageIndex;
GrdArticle.CurrentPageIndex =0;
GrdArticle.DataBind();
if ((nPage >= GrdArticle.PageCount) && (GrdArticle.PageCount > 0))
{
nPage = GrdArticle.PageCount - 1;
}
LabRowCount.Text=OleDs.Tables[0].Rows.Count.ToString();
GrdArticle.CurrentPageIndex = nPage;
GrdArticle.DataBind();
}
private void BtnAdd_Click(object sender, System.EventArgs e)
{
TxtState.Text = "2";
PageInit();
Clear();
}
private void Clear()
{
TxtTitle.Text = "";
TxtContent.Text = "";
}
private void BtnCancel_Click(object sender, System.EventArgs e)
{
TxtState.Text = "0";
PageInit();
Clear();
}
//保存信息
private void BtnSave_Click(object sender, System.EventArgs e)
{
string strTitle,strContent,strState,strSql;
strTitle = TxtTitle.Text.Trim();
strContent = HTMLEncode(TxtContent.Text);
strState = TxtState.Text;
if(strState == "2")
strSql = "insert into article(title,content) values('" + strTitle + "','" + strContent + "')";
else
strSql = "update article set title ='" + strTitle + "',content = '" + strContent + "' where id =" + int.Parse(LabID.Text.Trim());
if(Das.ExecSql(strSql))
{
Response.Write("<script language='javascript'>alert('保存成功!');</script>");
if(strState == "3")
TxtState.Text= "0";
else
Clear();
PageInit();
BindGrdArticle();
}
else
{
Response.Write("<script language='javascript'>alert('保存不成功,请稍后再试!');</script>");
}
}
private string HTMLEncode(string str)
{
str = str.Replace(">", ">");
str = str.Replace("<", "<");
char ch;
ch=(char)32;
str = str.Replace(ch.ToString(), " ");
ch=(char)34;
str = str.Replace(ch.ToString(), """);
ch=(char)39;
str = str.Replace(ch.ToString(), "'");
ch=(char)13;
str = str.Replace(ch.ToString(), "");
ch=(char)10;
str = str.Replace(ch.ToString(), "<BR> ");
return str;
}
private string TextEncode(string str)
{
str = str.Replace(">",">");
str = str.Replace("<","<");
char ch;
ch=(char)32;
str = str.Replace(" ",ch.ToString());
ch=(char)34;
str = str.Replace(""",ch.ToString());
ch=(char)39;
str = str.Replace("'",ch.ToString());
ch=(char)10;
str = str.Replace("<BR> ",ch.ToString());
return str;
}
//浏览信息
private void BtnView_Click(object sender, System.EventArgs e)
{
int nRow = CheckCbx();
string strTableID = LabID.Text;
if (nRow == -1)
Response.Write("<script>alert('请先选择选择一条记录!');</script>");
else
if (strTableID.IndexOf(",") >0)
Response.Write("<script>alert('浏览只能选择一条记录!');</script>");
else
{
DispDetail(nRow);
TxtState.Text = "1";
PageInit();
}
}
//检查用户选择DataGrid中记录的总数,返回DG中单选的记录号,多选的记录号保存LabDeptID中。
private int CheckCbx()
{
int nRow = -1;
LabID.Text = "";
for (int i = 0;i < GrdArticle.Items.Count;i++)
{
CheckBox CbxTable = (CheckBox)GrdArticle.Items[i].FindControl("CbxSelect");
if(CbxTable.Checked == true)
{
if(LabID.Text == "")
{
LabID.Text = GrdArticle.Items[i].Cells[2].Text.Trim();
nRow = i;
}
else
{
LabID.Text = LabID.Text + "," + GrdArticle.Items[i].Cells[2].Text.Trim();
}
}
}
return nRow;
}
//显示明细数据
private void DispDetail(int nRow)
{
TxtTitle.Text = GrdArticle.Items[nRow].Cells[1].Text;
TxtContent.Text = TextEncode(GrdArticle.Items[nRow].Cells[3].Text);
}
private void BtnNext_Click(object sender, System.EventArgs e)
{
Next();
}
//记录向前移动一条
private void Previous()
{
int nPage,nRow;
nPage = GrdArticle.CurrentPageIndex;
//当前选中记录行号
nRow = CheckCbx();
//是否为当前页的第一条记录
if(nRow == 0)
{
GrdArticle.CurrentPageIndex = nPage-1;
BindGrdArticle();
SetCbxState(nGrdRows-1,true);
DispDetail(nGrdRows-1);
}
else
{
SetCbxState(nRow,false);
SetCbxState(nRow-1,true);
DispDetail(nRow-1);
}
PageInit();
}
//记录向下移动一条
private void Next()
{
int nPage,nRow;
nPage = GrdArticle.CurrentPageIndex;
//当前选中记录行号
nRow = CheckCbx();
//是否为当前页的最后一条记录
if(nRow == (nGrdRows-1))
{
GrdArticle.CurrentPageIndex = nPage+1;
BindGrdArticle();
SetCbxState(0,true);
DispDetail(0);
}
else
{
SetCbxState(nRow,false);
SetCbxState(nRow+1,true);
DispDetail(nRow+1);
}
PageInit();
}
//设置复选框状态。
private void SetCbxState(int nRow,bool bState)
{
CheckBox CbxDept;
CbxDept = (CheckBox)GrdArticle.Items[nRow].FindControl("CbxSelect");
CbxDept.Checked = bState;
}
private void BtnPrevious_Click(object sender, System.EventArgs e)
{
Previous();
}
//返回当前选中的记录行数。
private int GetRow()
{
int nRow,nPage;
nPage = GrdArticle.CurrentPageIndex;
nRow = nPage * nGrdRows + CheckCbx() + 1;
return nRow;
}
//换页
private void GrdArticle_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
GrdArticle.CurrentPageIndex = e.NewPageIndex;
BindGrdArticle();
}
//排序
private void GrdArticle_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
DataView dv = new DataView();
BindGrdArticle();
dv.Table = OleDs.Tables[0];
dv.Sort = e.SortExpression;
GrdArticle.DataSource = dv;
GrdArticle.DataBind();
GrdArticle.EditItemIndex = -1;
GrdArticle.SelectedIndex = 0;
}
//修改表信息
private void BtnEdit_Click(object sender, System.EventArgs e)
{
int nRow = CheckCbx();
string strTableID = LabID.Text;
if (nRow == -1)
Response.Write("<script>alert('请先选择选择一条记录!');</script>");
else
if (strTableID.IndexOf(",") >0)
Response.Write("<script>alert('修改只能选择一条记录!');</script>");
else
{
DispDetail(nRow);
TxtState.Text = "3";
PageInit();
}
}
//删除表信息
private void BtnDel_Click(object sender, System.EventArgs e)
{
int nRow = 0,nNewRow = 0,nRowCount,nPage;
string strTableID,strSql;
nRow = CheckCbx();
strTableID = LabID.Text.Trim();
strSql = "delete from article where id in(" + strTableID + ")";
if(TxtState.Text == "1")
{
//当前选中记录行号
SetCbxState(nRow,true);
//删除执行前,判断当前记录号是否第一条,最后一条。i=0||i=max||i=orther
nRowCount = int.Parse(LabRowCount.Text);
nPage = GrdArticle.CurrentPageIndex;
if(nRow == 0 && nRowCount-1 == 0)
nNewRow = -1;
else
{
//是否删除最末一条记录
if(((nPage * nGrdRows) + nRow) == nRowCount-1)
{
Previous(); //上移一条记录
if(nRow == 0) //是否为当前页的首记录
nNewRow = nGrdRows-1; //上一页的尾记录
else
nNewRow = nRow-1;
}
else
{
Next(); //下移一条记录
nNewRow = nRow;
}
}
}
if (Das.ExecSql(strSql))
{
Response.Write("<script>alert('删除成功!');</script>");
Clear();
BindGrdArticle();
//重新选中要浏览的记录
if(TxtState.Text == "1")
{
if(nNewRow != -1)
{
SetCbxState(nNewRow,true);
DispDetail(nNewRow);
}
else
{
TxtState.Text = "0";
}
PageInit();
}
}
else
{
Response.Write("<script>alert('删除不成功,请稍后再试!');</script>");
if(TxtState.Text=="1")
{
PageInit();
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?