有一组C#编写的页面的,每个页面中的大量代码都一样,就是判断SESSION等一类的,因为每张页的功能一样,但操作的表不一样而已,如果修改功能,就要一张一张的改,重复劳动,有没有什么好的方法与思路?十分感谢,我才学C#时间不长,请大家帮忙!!用类的话如何用呢?我的页中有很多需要判断的东西。
像这样:
if (dsc == "add")
{
//判断用是否为科管科长,只有科管科长才可以进行信息的添加
if (qx == "4")
{
//“删除”与“修改”按钮不可用
this.Button2.Enabled = false;
this.Button3.Enabled = false; //将上传目录改为当前科管科长的上传目录
this.Editor1.SecurityPolicyFile = Session["uname"].ToString() + ".config"; this.cls();
}
else
{
Response.Redirect("../error.aspx?id=2");
}
}
如何写进类的方法中,可是页面里如何使用???谢谢!!
像这样:
if (dsc == "add")
{
//判断用是否为科管科长,只有科管科长才可以进行信息的添加
if (qx == "4")
{
//“删除”与“修改”按钮不可用
this.Button2.Enabled = false;
this.Button3.Enabled = false; //将上传目录改为当前科管科长的上传目录
this.Editor1.SecurityPolicyFile = Session["uname"].ToString() + ".config"; this.cls();
}
else
{
Response.Redirect("../error.aspx?id=2");
}
}
如何写进类的方法中,可是页面里如何使用???谢谢!!
public class Utils
{
public static SomeMethod(Page p)
{
if (dsc == "add")
{
//判断用是否为科管科长,只有科管科长才可以进行信息的添加
if (qx == "4")
{
//“删除”与“修改”按钮不可用
this.Button2.Enabled = false;
this.Button3.Enabled = false; //将上传目录改为当前科管科长的上传目录
this.Editor1.SecurityPolicyFile = Session["uname"].ToString() + ".config"; this.cls();
}
else
{
Response.Redirect("../error.aspx?id=2");
}
} }
}这只是个例子,肯定运行不了的,呵呵。
{
}
页面中if(!类.CheckRole(dsc,qx))
{
Response.Redirect(...
}
谢谢,不过还不太明白,下面是我页中的载入事件代码,每张页面都有这段代码,就是在读出数据写入控件时的一段不同,就想实现用类把这些重复的代码封装,在页面调用就可以了,请帮我看一下! protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//判断已经否已经登录
if (Session["login"] == null)
{
//没有登录的话跳转登录页面
Response.Redirect("../user_login.aspx");
}
else
{
//从会话值中取出管理员的权限值
string qx = Session["uqx"].ToString(); //从页传值中的form变量中取出页面的执行方法,为add时是添加新用户
//为mod时是修改用户资料,再从另一个ID变量中取需要修改用户的ID号,从而从数据库中取出此用户的所有信息并绑定到页中的各个相关的控件上
string dsc = Request["form"].ToString(); if (dsc == "add")
{
//判断用是否为科管科长,只有科管科长才可以进行信息的添加
if (qx == "4")
{
//“删除”与“修改”按钮不可用
this.Button2.Enabled = false;
this.Button3.Enabled = false; //将上传目录改为当前科管科长的上传目录
this.Editor1.SecurityPolicyFile = Session["uname"].ToString() + ".config"; this.cls();
}
else
{
Response.Redirect("../error.aspx?id=2");
}
}
else if (dsc == "mod")
{
//判断用是否为科管科长或管理人员,只有这两个权限的用户才可以更改信息
//||:或者(or),&&:并且(and)
if (qx == "4" || qx == "1")
{
//“添加”按键不可用
this.Button1.Enabled = false; string dsc2 = this.Request["id"].ToString(); ;
SqlDataReader sdr = dbc.readee(dname, dsc2);
sdr.Read(); //将上传目录改为资料提交的科管科长的目录,因为管理员也可能需要更改
this.Editor1.SecurityPolicyFile = sdr["提交人"].ToString() + ".config"; //如果是科管科长,那么“删除”按键也不显示,科管科长没有删除的权限
if (qx == "4")
{
this.Button3.Enabled = false;
//判断此条记录是否已经通过审核,如已经通过审核,那么科管科长没有权限再进行修改,“修改”按键不可用
if (sdr["审核情况"].ToString() == "是")
{
this.Button2.Enabled = false;
this.Button4.Enabled = false;
}
} //取出所属的单位名称(编号)
string ddw = sdr["提交单位名称"].ToString();
string ddwxz = sdr["提交单位性质"].ToString(); //根据管理员的单位性质与单位名称,与当前记录的单位性质与名称进行比较,判断当前的信息是否为此科管科长的信息
if (ddw != Session["udw"].ToString() || ddwxz != Session["udwxz"].ToString())
{
Response.Redirect("../error.aspx?id=2");
} //将读取出来的数据流写入各个控件
this.TextBox1.Text = sdr["名称"].ToString();
this.RadioButtonList1.SelectedValue = sdr["品种类别"].ToString();
this.TextBox2.Text = sdr["作物种类"].ToString();
this.TextBox3.Text = sdr["审定级别"].ToString();
this.TextBox4.Text = sdr["审定地点"].ToString();
this.TextBox5.Text = sdr["品种权号"].ToString();
this.TextBox6.Text = sdr["审定时间"].ToString();
this.TextBox7.Text = sdr["授权时间"].ToString();
this.TextBox8.Text = sdr["申请号"].ToString();
this.TextBox9.Text = sdr["公告号"].ToString();
this.TextBox10.Text = sdr["公告日"].ToString();
this.TextBox11.Text = sdr["品种权人"].ToString();
this.TextBox12.Text = sdr["主要培育人"].ToString();
this.TextBox13.Text = sdr["引选育单位"].ToString();
this.TextBox14.Text = sdr["品种主要现状介绍"].ToString();
this.Editor1.Text = sdr["备注"].ToString(); }
else
{
Response.Redirect("../error.aspx?id=2");
}
}
else
{
Response.Redirect("../error.aspx?id=1");
}
}
} }
如果你每个页面控件基本上都是一样的话,可以做成一个user control