这里使用了2个Repeater,算是一种比较笨的方法,如果有更好地方法请留言联系我。

代码如下:

HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btnDataList"
            runat="server" Text="显示多条用户信息" OnClick="BtnData_Click" />
        <asp:Button ID="btnDataObj"
            runat="server" Text="显示详细用户信息" OnClick="BtnData_Click" />
        <asp:Repeater ID="repeaterList" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                        <th>
                            姓名
                        </th>
                        <th>
                            年龄
                        </th>
                        <th>
                            分数
                        </th>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <%#Eval("Name") %>
                    </td>
                    <td>
                        <%#Eval("Age") %>
                    </td>
                    <td>
                        <%#Eval("Score") %>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
        <asp:Repeater ID="repeaterObj" runat="server">
            <HeaderTemplate>
                <table>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        姓名:
                    </td>
                    <td>
                        <%#Eval("Name") %>
                    </td>
                </tr>
                <tr>
                    <td>
                        年龄:
                    </td>
                    <td>
                        <%#Eval("Age") %>
                    </td>
                </tr>
                <tr>
                    <td>
                        分数:
                    </td>
                    <td>
                        <%#Eval("Score") %>
                    </td>
                </tr>
                <tr>
                    <td>
                        地址:
                    </td>
                    <td>
                        <%#Eval("Address") %>
                    </td>
                </tr>
                <tr>
                    <td>
                        学校:
                    </td>
                    <td>
                        <%#Eval("School") %>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>


后台C#代码:

    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        /// <summary>
        /// 模拟数据 多跳数据时
        /// </summary>
        /// <returns>成绩数据</returns>
        public DataTable GetDataList()
        {
            //模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Age");
            dt.Columns.Add("Score");
            dt.Columns["Name"].DataType = typeof(string);
            dt.Columns["Age"].DataType = typeof(Int32);
            dt.Columns["Score"].DataType = typeof(Int32);
            DataRow dr = dt.NewRow();
            dr["Name"] = "张三";
            dr["Age"] = 18;
            dr["Score"] = 89;
            dt.Rows.Add(dr);
            DataRow dr1 = dt.NewRow();
            dr1["Name"] = "李四";
            dr1["Age"] = 21;
            dr1["Score"] = 99;
            dt.Rows.Add(dr1);
            DataRow dr2 = dt.NewRow();
            dr2["Name"] = "王五";
            dr2["Age"] = 19;
            dr2["Score"] = 82;
            dt.Rows.Add(dr2);
            DataRow dr3 = dt.NewRow();
            dr3["Name"] = "赵六";
            dr3["Age"] = 18;
            dr3["Score"] = 89;
            dt.Rows.Add(dr3);

            return dt;
        }

        /// <summary>
        /// 模拟数据 一条数据时
        /// </summary>
        /// <returns></returns>
        public DataTable GetDataObj() 
        {
            //模拟数据
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Age");
            dt.Columns.Add("Score");
            dt.Columns.Add("Address");
            dt.Columns.Add("School");
            dt.Columns["Name"].DataType = typeof(string);
            dt.Columns["Age"].DataType = typeof(Int32);
            dt.Columns["Score"].DataType = typeof(Int32);
            dt.Columns["Address"].DataType = typeof(string);
            dt.Columns["School"].DataType = typeof(string);
            DataRow dr = dt.NewRow();
            dr["Name"] = "张三";
            dr["Age"] = 18;
            dr["Score"] = 89;
            dr["Address"] = "北京";
            dr["School"] = "第二十八中学";
            dt.Rows.Add(dr);

            return dt;
        }

        /// <summary>
        /// 根据数据源展示不同模板
        /// </summary>
        /// <param name="dt"></param>
        public void ShowDataResult(DataTable dt) 
        {
            if (dt.Columns.Count<=3)    //这里的条件可根据实际数据信息改变
            {
                this.repeaterList.DataSource = dt;
                this.repeaterList.DataBind();
                this.repeaterList.Visible = true;
                this.repeaterObj.Visible = false;
            }
            else
            {
                this.repeaterObj.DataSource = dt;
                this.repeaterObj.DataBind();
                this.repeaterObj.Visible = true;
                this.repeaterList.Visible = false;
            }

        }
        /// <summary>
        /// 点击Button触发事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnData_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            if (btn.Text.Equals(this.btnDataList.Text))
            {
                ShowDataResult(GetDataList());
            }
            else
            {
                ShowDataResult(GetDataObj());
            }
        }
    }

 

 

posted on 2013-10-23 16:51  千叶景枫  阅读(385)  评论(0编辑  收藏  举报