近来在实现一个显示详细信息的功能,说明如下:
我有几个数据库表,一个是学生的基本信息表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">
                &nbsp;曾用名:</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和我之前的方法相比应该差别不大吧?到底哪个方法好些?刚接触这个东西,很多不懂,望高人指点,谢谢

解决方案 »

  1.   

    用FormView简单,没有几句代码!
    你这样做代码多了一点,也不是不可以!!
    至于效率嘛!应该不会有太大的差别!!
      

  2.   

    gridview可以绑定formview,detailview显示详细信息
    也可点击列弹出DIV显示详细信息
      

  3.   

    可不可以认为效率基本上都是在sql查询上消耗了?现在要查找到多个表,一看到自己写的那个sql语句长的吓人。
      

  4.   

    这就一查询。。如果想效率点只能是sql语句尽量写得有效率点
      

  5.   

    要讲效率repeater加载速度最快,其次formview再者gridview,如果只是显示用repeater效果最好,只是需要手动写代码!