Webform Repeater 显示主外键关系的两个表,参考代码

第一种方法,给car增加属性

    public decimal Price
        {
            get { return _Price; }
            set { _Price = value; }
        }
        public string Pic
        {
            get { return _Pic; }
            set {_Pic = value; }
        }
        //在这里给汽车表增加一个属性
        public string Brandname
        {
            get {
                //通过汽车表里的系列编号系列查询一个系列名称
                BrandData data = new BrandDA().Select(_Brand);
                return data.BrandName;
            }
            set { }
        }

aspx里的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                         <td>编号</td>
                        <td>名称</td>
                        <td>系列</td>
                        <td>时间</td>
                        <td>油耗</td>
                        <td>动力</td>
                        <td>排量</td>
                        <td>价格</td>
                        <td>图片</td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                        <td><%#Eval("Code") %></td>
                        <td><%#Eval("Name") %></td>
                        <td><%#Eval("Brandname") %></td>   <%--在这里改一下属性的名字,就可以实现把系列编号变成系列名称--%>
                        <td><%#Eval("Time") %></td>
                        <td><%#Eval("Oil") %></td>
                        <td><%#Eval("Powers")%></td>
                        <td><%#Eval("Exhaust") %></td>
                       <td><%#Eval("Price") %></td>
                       <td><%#Eval("Pic") %></td>
                            </tr>
            </ItemTemplate>
            <FooterTemplate>
                <table/>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>


第二种方法,用ItemdataBount事件,aspx.cs的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DA;

public partial class 第二种方法 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindreperter();
        }
    }
    public void bindreperter()
    {
        Repeater1.DataSource = new CarDA().Select();
        Repeater1.DataBind();
    }

    //ItemdataBount是项绑定事件,Repeater1里的Heater,Foot里索引值都是-1
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {

        //if条件是排除表头那一行
        if (e.Item.ItemIndex > -1)
        {
            Literal lt = (Literal)e.Item.FindControl("Literal1");
//找到控件            lt.Text = new BrandDA().Select(lt.Text).BrandName;
        }

    }
}


aspx里的代码

     <tr>
                        <td><%#Eval("Code") %></td>
                        <td><%#Eval("Name") %></td>
                        <td>
                           <%-- //把原来在表格显示的值放在一个Literal里,也同样可以显示,用这个方法可以把系列号改为系列名称--%>
                            <asp:Literal ID="Literal1" runat="server" Text='<%#Eval("Brand") %>'></asp:Literal></td>   
                        <td><%#Eval("Time") %></td>
                        <td><%#Eval("Oil") %></td>
                        <td><%#Eval("Powers")%></td>
                        <td><%#Eval("Exhaust") %></td>
                       <td><%#Eval("Price") %></td>
                       <td><%#Eval("Pic") %></td>
                            </tr>

 

posted @ 2015-07-28 15:05  zhenximeiyitian  阅读(223)  评论(0编辑  收藏  举报