代码改变世界

如何开发一个学生成绩管理糸统(8)

2010-05-19 18:38  ScriptZhang  阅读(1699)  评论(19编辑  收藏  举报

这一节,开始说明WEB层的代码了,

这是设计界面

可以按三种方式来查询课程信息,在基本操作哪里可以进行编辑和删除,点击删除会重新链接当前页面,删除指定项,

点击编辑后,会跳转编辑页面

在列表框第一列是全选,可以对点击后的项目进行全部删除,

导出可以导出当前页面信息的EXcel表格

我现在来说明.cs文件的方法,首先是bindData(),从bLL层取得数据,并填入Repeater,为了结合aspnetpager分页,

我使用了CourseAPI.GetCoursePaged(AspNetPager1.起始项,AspNetPager2.结束项

 

代码
void bindData()
{
int CountNum = CourseAPI.SclarCourseNum();
TotalNum.Text
= CountNum.ToString();
AspNetPager1.RecordCount
= CountNum;
Repeater1.DataSource
= CourseAPI.GetCoursePaged(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, false);
Repeater1.DataBind();

}

 

在使用这个方法前,实例化

 

CourseBLL CourseAPI = new CourseBLL();
CourseInfoBLL CourseInfoAPI
= new CourseInfoBLL();

再在Page_Load事件中使用bindData();

代码
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
bindData();
}

if (Request.QueryString["action"] == "del")
{
int id = CString.TryToParse(Request.QueryString["id"]);
if (CourseAPI.DeleteCourse(id)&&CourseInfoAPI.DeleteCourseInfo(id))
AlertMessage.Redirect(
this, "删除成功", "Course.aspx");

}


}

 

 

在点击aspnetpager的分页按键的时候,再执行以下代码

 

代码
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
if (Search_value.Text == "")
{
bindData();
}
else
{
searchOrders();
}

}

 

执行程序后页面如这样,

aspnetpager是一个相当好用的分页控件,

这里是网站

http://www.webdiyer.com/

然后 就是按3种方式进行查找,考虑数据不多,我使用 PagedDataSource 来

protected void Btn_Search_Click(object sender, EventArgs e)
{
searchOrders();
}

 

 

进行分页,

代码
void searchOrders()
{
string Search_Str = Search_value.Text.ToString();
if (Search_Str != "")
{
DataView dv
= new DataView();
DataTable dt
= new DataTable();
switch (Search_style.SelectedValue.ToString())
{

case "1":
dt
= CourseAPI.GetCourseByKname(Search_Str);
break;
case "2":
dt
= CourseAPI.GetCourseByTerm(Search_Str);
break;
case "3":
dt
= CourseAPI.GetCourseByKId(CString.TryToParse(Search_Str));
break;

}

dv
= dt.DefaultView;
int Totalnum = dv.Count;
AspNetPager1.RecordCount
= Totalnum;
TotalNum.Text
= Totalnum.ToString();
PagedDataSource pds
= new PagedDataSource();
pds.DataSource
= dv;
pds.AllowPaging
= true;
pds.CurrentPageIndex
= AspNetPager1.CurrentPageIndex - 1;
pds.PageSize
= AspNetPager1.PageSize;
Repeater1.DataSource
= pds;
Repeater1.DataBind();
}
else
{
AlertMessage.showMsg(
this, "请输入查询字符");
}
}

点击运行搜索方法

protected void Btn_Search_Click(object sender, EventArgs e)
{
searchOrders();
}

 

 

 

如果要显示全部数据,哪就得点击一下显示全部,

 

protected void Show_all_Click(object sender, EventArgs e)
{
bindData();
Search_value.Text
= "";
AspNetPager1.CurrentPageIndex
= 0;
}

 

下一节,我说一下如何增加数据,还有在DAL层加上事务支持。