近来在实现一个显示详细信息的功能,说明如下:
我有几个数据库表,一个是学生的基本信息表studentInfo,一个是由学生的学籍号作为外键的学生成员信息表studentmember。
先是做了一个查询功能,比如根据班级查找出来一个班级里面的学生,当然是用gridview实现的,然后点击gridview可以显示这个学生的详细信息,包括家庭成员什么的,刚开始我是直接在页面上使用一个html的table,然后布局,然后再后台读取数据,再把读取的数据转换绑定到html的table的lable上。
具体代码:
<table>
<tr>
<td colspan="2" rowspan="2">
<asp:Image ID="StImage" runat="server" /></td>
<td style="width: 213px; height: 4px">
学生姓名:</td>
<td colspan="2" style="height: 4px">
<asp:Label ID="StNameLabel" runat="server" Width="161px" ></asp:Label></td>
</tr>
<tr>
<td style="width: 213px">
曾用名:</td>
<td colspan="2">
<asp:Label ID="LSnameLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
出生年月:</td>
<td style="width: 158px">
<asp:Label ID="BirthdayLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
民族:</td>
<td colspan="2">
<asp:Label ID="NationLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
学籍号:</td>
<td style="width: 158px">
<asp:Label ID="StIDLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
性别:</td>
<td colspan="2">
<asp:Label ID="SexLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
身份证号:</td>
<td style="width: 158px; height: 21px">
<asp:Label ID="IDCardLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
曾用身份证:</td>
<td colspan="2" style="height: 21px">
<asp:Label ID="LSIDCardLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
家庭住址:</td>
<td style="width: 158px; height: 21px">
<asp:Label ID="ADDRLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
户口所在地:</td>
<td colspan="2" style="height: 21px">
<asp:Label ID="HUkouLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
目前学校:</td>
<td style="width: 158px">
<asp:Label ID="NowSchoolLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
毕业学校:</td>
<td colspan="2">
<asp:Label ID="LSSchoolLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
班级:</td>
<td style="width: 158px">
<asp:Label ID="ClassLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
年级:</td>
<td colspan="2">
<asp:Label ID="GradeLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
父母或监护人</td>
<td style="width: 158px">
姓名</td>
<td style="width: 213px">
工作单位</td>
<td style="width: 248px">
联系方式1</td>
<td style="width: 248px">
联系方式2</td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
<asp:Label ID="FatherLabel" runat="server"></asp:Label></td>
<td style="width: 158px; height: 21px">
<asp:Label ID="FnameLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
<asp:Label ID="FWorkLabel" runat="server"></asp:Label></td>
<td style="width: 248px; height: 21px">
<asp:Label ID="Fphone1Label" runat="server"></asp:Label></td>
<td style="width: 248px; height: 21px">
<asp:Label ID="FPhone2Label" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
<asp:Label ID="motherLabel" runat="server"></asp:Label></td>
<td style="width: 158px">
<asp:Label ID="MNameLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
<asp:Label ID="MWorkLabel" runat="server"></asp:Label></td>
<td style="width: 248px">
<asp:Label ID="Mphone1Label" runat="server"></asp:Label></td>
<td style="width: 248px">
<asp:Label ID="Mphone2Label" runat="server"></asp:Label></td>
</tr>
</table>
//后台填充数据
public partial class SearchResult : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/// <summary>
/// 加载学生详细信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
if (!IsPostBack)
InitData();
} /// <summary>
/// 加载学生详细信息
/// </summary>
private void InitData()
{
int _studentID = Convert.ToInt32(Request.QueryString["student_ID"]);
Student student = new Student();
student.LoadData(_studentID); StudentMember Member = new StudentMember();
Member.LoadData(_studentID); StNameLabel.Text = student.StudentName;
LSnameLabel.Text = student.LastName;
BirthdayLabel.Text = Convert.ToString(student.Birthday);
NationLabel.Text = student.Nation;
StIDLabel.Text = student.StudentID;
SexLabel.Text = Convert.ToString(student.Sex);
IDCardLabel.Text = student.CardID;
LSIDCardLabel.Text = student.LastCardID;
ADDRLabel.Text = student.Address;
HUkouLabel.Text = student.HukouAddr;
NowSchoolLabel.Text = Convert.ToString(student.Schoolid);
LSSchoolLabel.Text = Convert.ToString(student.Schoolid);
ClassLabel.Text = Convert.ToString(student.Classid);
GradeLabel.Text = Convert.ToString(student.Gradeid);
FatherLabel.Text = Member.MemberRela1;
FnameLabel.Text = Member.MemberName1;
FWorkLabel.Text = Member.WorkMess1;
Fphone1Label.Text = Member.Phone11;
FPhone2Label.Text = Member.Phone12;
motherLabel.Text = Member.MemberRela2;
MNameLabel.Text = Member.MemberName2;
MWorkLabel.Text = Member.WorkMess2;
Mphone1Label.Text = Member.Phone21;
Mphone2Label.Text = Member.Phone22;
}
}
感觉这样好像方法太笨。
再后来又发现可以使用formview来实现这个功能,就使用formview来绑定数据源,现在有点困惑的是,用formview绑定到数据源效率如何,除了我进行查找时的数据库效率之外,使用formview和我之前的方法相比应该差别不大吧?到底哪个方法好些?刚接触这个东西,很多不懂,望高人指点,谢谢
我有几个数据库表,一个是学生的基本信息表studentInfo,一个是由学生的学籍号作为外键的学生成员信息表studentmember。
先是做了一个查询功能,比如根据班级查找出来一个班级里面的学生,当然是用gridview实现的,然后点击gridview可以显示这个学生的详细信息,包括家庭成员什么的,刚开始我是直接在页面上使用一个html的table,然后布局,然后再后台读取数据,再把读取的数据转换绑定到html的table的lable上。
具体代码:
<table>
<tr>
<td colspan="2" rowspan="2">
<asp:Image ID="StImage" runat="server" /></td>
<td style="width: 213px; height: 4px">
学生姓名:</td>
<td colspan="2" style="height: 4px">
<asp:Label ID="StNameLabel" runat="server" Width="161px" ></asp:Label></td>
</tr>
<tr>
<td style="width: 213px">
曾用名:</td>
<td colspan="2">
<asp:Label ID="LSnameLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
出生年月:</td>
<td style="width: 158px">
<asp:Label ID="BirthdayLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
民族:</td>
<td colspan="2">
<asp:Label ID="NationLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
学籍号:</td>
<td style="width: 158px">
<asp:Label ID="StIDLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
性别:</td>
<td colspan="2">
<asp:Label ID="SexLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
身份证号:</td>
<td style="width: 158px; height: 21px">
<asp:Label ID="IDCardLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
曾用身份证:</td>
<td colspan="2" style="height: 21px">
<asp:Label ID="LSIDCardLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
家庭住址:</td>
<td style="width: 158px; height: 21px">
<asp:Label ID="ADDRLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
户口所在地:</td>
<td colspan="2" style="height: 21px">
<asp:Label ID="HUkouLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
目前学校:</td>
<td style="width: 158px">
<asp:Label ID="NowSchoolLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
毕业学校:</td>
<td colspan="2">
<asp:Label ID="LSSchoolLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
班级:</td>
<td style="width: 158px">
<asp:Label ID="ClassLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
年级:</td>
<td colspan="2">
<asp:Label ID="GradeLabel" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
父母或监护人</td>
<td style="width: 158px">
姓名</td>
<td style="width: 213px">
工作单位</td>
<td style="width: 248px">
联系方式1</td>
<td style="width: 248px">
联系方式2</td>
</tr>
<tr>
<td style="width: 165px; height: 21px">
<asp:Label ID="FatherLabel" runat="server"></asp:Label></td>
<td style="width: 158px; height: 21px">
<asp:Label ID="FnameLabel" runat="server"></asp:Label></td>
<td style="width: 213px; height: 21px">
<asp:Label ID="FWorkLabel" runat="server"></asp:Label></td>
<td style="width: 248px; height: 21px">
<asp:Label ID="Fphone1Label" runat="server"></asp:Label></td>
<td style="width: 248px; height: 21px">
<asp:Label ID="FPhone2Label" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 165px">
<asp:Label ID="motherLabel" runat="server"></asp:Label></td>
<td style="width: 158px">
<asp:Label ID="MNameLabel" runat="server"></asp:Label></td>
<td style="width: 213px">
<asp:Label ID="MWorkLabel" runat="server"></asp:Label></td>
<td style="width: 248px">
<asp:Label ID="Mphone1Label" runat="server"></asp:Label></td>
<td style="width: 248px">
<asp:Label ID="Mphone2Label" runat="server"></asp:Label></td>
</tr>
</table>
//后台填充数据
public partial class SearchResult : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/// <summary>
/// 加载学生详细信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
if (!IsPostBack)
InitData();
} /// <summary>
/// 加载学生详细信息
/// </summary>
private void InitData()
{
int _studentID = Convert.ToInt32(Request.QueryString["student_ID"]);
Student student = new Student();
student.LoadData(_studentID); StudentMember Member = new StudentMember();
Member.LoadData(_studentID); StNameLabel.Text = student.StudentName;
LSnameLabel.Text = student.LastName;
BirthdayLabel.Text = Convert.ToString(student.Birthday);
NationLabel.Text = student.Nation;
StIDLabel.Text = student.StudentID;
SexLabel.Text = Convert.ToString(student.Sex);
IDCardLabel.Text = student.CardID;
LSIDCardLabel.Text = student.LastCardID;
ADDRLabel.Text = student.Address;
HUkouLabel.Text = student.HukouAddr;
NowSchoolLabel.Text = Convert.ToString(student.Schoolid);
LSSchoolLabel.Text = Convert.ToString(student.Schoolid);
ClassLabel.Text = Convert.ToString(student.Classid);
GradeLabel.Text = Convert.ToString(student.Gradeid);
FatherLabel.Text = Member.MemberRela1;
FnameLabel.Text = Member.MemberName1;
FWorkLabel.Text = Member.WorkMess1;
Fphone1Label.Text = Member.Phone11;
FPhone2Label.Text = Member.Phone12;
motherLabel.Text = Member.MemberRela2;
MNameLabel.Text = Member.MemberName2;
MWorkLabel.Text = Member.WorkMess2;
Mphone1Label.Text = Member.Phone21;
Mphone2Label.Text = Member.Phone22;
}
}
感觉这样好像方法太笨。
再后来又发现可以使用formview来实现这个功能,就使用formview来绑定数据源,现在有点困惑的是,用formview绑定到数据源效率如何,除了我进行查找时的数据库效率之外,使用formview和我之前的方法相比应该差别不大吧?到底哪个方法好些?刚接触这个东西,很多不懂,望高人指点,谢谢
你这样做代码多了一点,也不是不可以!!
至于效率嘛!应该不会有太大的差别!!
也可点击列弹出DIV显示详细信息