这两天,做一个模拟的电话簿(某IT经理给我的作业),包括2张表,一个是分组表tb_Group(GroupID, GroupName),一个是联系人表tb_Person(PersonName,GroupID,CellPhone,Remark),实现联系人的增删改查,看似很简单的东西,也学到了挺多东西。按照要求,把添加,查找和编辑的功能,放在了不同的页面:(其实,我认为完全没有必要分为这么多页面,每个页面都有字段的输入框,可以复合利用嘛,但是,要求这样做,就这么做吧!)
1. 添加页面:对姓名,分组,手机号进行不为空的验证,对手机号进行格式验证,添加成功后,跳转到查找页面。
2. 查找页面:对姓名,手机号,备注进行组合模糊查找,分组查找,所有字段组合查找。对记录进行排序,和分页。对记录进行删除。点击编辑时,跳转到编辑页面,并把该行的值传递过去。
3. 编辑页面:和添加页面完全一样,只是数据是从查找页面反射过来的,同样对编辑后的数据进行验证。 保存编辑后,跳转到查找页面。
在过程中遇到的障碍:
1. 绑定分组的DropDownList的Items,页面载入时,怎样来显示为不选择,怎样对未选择分组进行验证。方法是在tb_Group中加入一条空记录(GroupID=1,GroupName为空),载入时显示该空记录,如果状态为选中该空记录,提示选择分组。验证控件为:
2. 手机号码的验证:本来想把验证手机号格式和手机号不为空一起验证,用RegularExpressionValidator控件验证手机号格式,但是,没能同时验证不为空,只得又添加一个RequiredFieldValidator来验证不为空。
3. 点击GridView中的“编辑”时,把数据传递到编辑页面,但是不知道Group的值怎么传递过去。朋友给解决的:
查找页代码:
Response.Redirect(s_url);
}
编辑页代码:
}
4. 排序:即在Gridview的标题栏,点击某字段,按该字段的顺序和逆序排列。另外写篇日志吧!
程序主要代码:
Utility类:
{
con.Close();
}
}
}
dropDownList的Items动态绑定:
{
string strSql = @"select * from tb_Group order by GroupId";
DataTable dt = utility.ExcuteSql(strSql, "tb_Group");
return dt;
}
DdlGroup.DataBind();
}
添加记录:
}
}
}
查找记录:
}
GrdPerson.DataBind();
}
删除记录:
}
dalPerson.delete(PersonName);
BindAll();
}
编辑记录:
点击编辑,跳转到编辑页面,并把该行的值传递过去。
Response.Redirect(s_url);
}
编辑页面的代码:
}
}
}