要布局上面图片的效果,用Repeater怎么布局呢?

解决方案 »

  1.   

    画面代码:
    <div class="neibg">
                <table border="0" cellspacing="1" cellpadding="0" class="formtab" width="100%">
                    <tr>
                        <td rowspan="2">
                            合计
                        </td>
                        <td>
                            日期
                        </td>
                        <asp:Label ID="lblDate" runat="server"></asp:Label>
                        <td>
                            单位名称
                        </td>
                        <td colspan="3">
                            <asp:Label ID="lblTravelName" runat="server"></asp:Label>
                        </td>
                        <td>
                            团队数
                        </td>
                        <td colspan="2">
                            <asp:Label ID="lblTeamNum" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td class="style2">
                            总人数
                        </td>
                        <td class="style2">
                            <asp:Label ID="Label2" runat="server"></asp:Label>
                        </td>
                        <td class="style2">
                            总过夜游人数
                        </td>
                        <td class="style2">
                            <asp:Label ID="Label5" runat="server"></asp:Label>
                        </td>
                        <td class="style2">
                            总一日游人数
                        </td>
                        <td class="style2">
                            <asp:Label ID="Label4" runat="server"></asp:Label>
                        </td>
                        <td class="style2">
                            总人天数
                        </td>
                        <td class="style2">
                            <asp:Label ID="Label3" runat="server"></asp:Label>
                        </td>
                    </tr>
                  <tr>
                        <td rowspan="3">
                            上海
                        </td>
                        <td>
                            小计
                        </td>
                        <td>
                            &nbsp;
                        </td>
                        <td>
                            过夜游客数
                        </td>
                        <td>
                            &nbsp;
                        </td>
                        <td>
                            一日游客数
                        </td>
                        <td>
                            &nbsp;
                        </td>
                        <td>
                            人天数
                        </td>
                        <td>
                            &nbsp;
                        </td>
                    </tr>
                    <tr>
                        <td>
                            景区
                        </td>
                        <td colspan="7">
                            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tabntab">
                                <tr>
                                    <th>
                                        名称
                                    </th>
                                    <th colspan="6">
                                        人数
                                    </th>
                                </tr>
                                <tr>
                                    <td>
                                        双龙洞
                                    </td>
                                    <td colspan="6">
                                        &nbsp;
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        地下长河
                                    </td>
                                    <td colspan="6">
                                        10
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        诸葛八卦村
                                    </td>
                                    <td colspan="6">
                                        20
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            酒店
                        </td>
                        <td colspan="7">
                            
      

  2.   


                            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tabntab">
                                <tr>
                                    <th>
                                        名称
                                    </th>
                                    <th>
                                        入住人数
                                    </th>
                                    <th>
                                        入住天
                                    </th>
                                    <th>
                                        人天数
                                    </th>
                                    <th>
                                        住宿凭证编号
                                    </th>
                                </tr>
                                <tr>
                                    <td>
                                        莫泰<span lang="EN-US">168</span>
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        世贸大饭店
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                    <td>
                                        &nbsp;
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </div>
      

  3.   

    我看也就是一个展示功能。。可以不用数据展示控件自己后台输出html代码。。
      

  4.   

    只是布局的话,就不用repeater了,要是数据动态的话,比较不好办,只能自己自定义进行构造
      

  5.   

    是数据动态的,6楼的用html后台自己写的方法也用过,但我想知道用repeater能实现吗
      

  6.   


    肯定能实现原。。三个repeater没必要。。
      

  7.   

    这个需要三个吗?一个就够了合计那为HeaderTemplate地区就是ItemTemplate
      

  8.   

    1个 就行了别想了。合计那个 在程序里面 自己算出来,在页面 <%=变量 %> 显示。--------------------------------------------------------那里面的酒店和景区不好控制吧-----------------那2个 地方 都绑定成字段,输出 html 就可以了。
      

  9.   

    既然已经确定了显示格式,那就用模板列+table来布局就行了。
      

  10.   

    我觉得这主要看数据如何处理, 还是自己拼html吧。
      

  11.   

    弄个repeater把画面代码放进去,再改成读出来的就行了么……
      

  12.   

    哇,那就不晓得要用多少个repeater啦。haha
      

  13.   

    顶部head中间的 一个个table。
      

  14.   

    浅显的看法,repeater只是代替了foreach
    所以不存在什么“repeater布局”这样的东西
    布局是HTML的事,把每一项(最外层的<TR>)写进repeater,数据换成<%# Eval()%>绑定就行了
      

  15.   

    以下为aspx页面的定义方式:
    ----------------------------------------------------------------
        <asp:Repeater ID="repMain" runat=server onitemdatabound="repMain_ItemDataBound">
        <HeaderTemplate>
        <table width=600 align=center>
        <tr><td rowspan=2>合计</td><td>日期</td><td>单位名称</td><td colspan=3>[单位名称]</td></tr>
        <tr><td>总人数</td><td>[总人数]</td><td>总过夜游人数</td><td>[00]</td><td>总一日游人数</td></tr>
        </HeaderTemplate>
        <ItemTemplate>
        <tr>
        <td rowspan=3>上海[值为绑定]</td>
        <td>小计</td>
        <td>[00]</td>
        <td>过夜游人数</td>
        <td>[00]</td>
        <td>一日游客数</td>
        </tr>
        <tr>
        <td>景区</td>
        <td colspan=4>
        <asp:DataGrid ID="dgJingQu" runat=server AutoGenerateColumns=false AllowPaging=false Width=100%>
        <HeaderStyle CssClass="CustomHeaderStyle" />
        <ItemStyle  CssClass="CustomItemStyle" />
        <Columns>
        <asp:BoundColumn HeaderText="名称" DataField="JQName"></asp:BoundColumn>
        </Columns>
        </asp:DataGrid>
        </td>
        </tr>
        <tr>
        <td>酒店</td>
        <td colspan=4>
        <asp:DataGrid ID="dgJiuDian" runat=server AutoGenerateColumns=false AllowPaging=false Width=100%>
        <HeaderStyle CssClass="CustomHeaderStyle" />
        <ItemStyle  CssClass="CustomItemStyle" />
        <Columns>
        <asp:BoundColumn HeaderText="名称" DataField="JQName"></asp:BoundColumn>
        <asp:BoundColumn HeaderText="入驻人数" DataField="Members"></asp:BoundColumn>
        <asp:BoundColumn HeaderText="入住天" DataField="Days"></asp:BoundColumn>
        <asp:BoundColumn HeaderText="人**" DataField="Field4"></asp:BoundColumn>
        </Columns>
        </asp:DataGrid>
        </td>
        </tr>
        </ItemTemplate>
        <FooterTemplate></table></FooterTemplate>
        </asp:Repeater>以下为aspx.cs页面的绑定方式:
    ----------------------------------------------------------------
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {//GetTable你自己实现吧。
                    repMain.DataSource = GetTable("select * from 表1");
                    repMain.DataBind();
                }
            }        protected void repMain_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemIndex == -1) return;
                DataGrid dgJingQu = e.Item.FindControl("dgJingQu") as DataGrid;
                DataGrid dgJiuDian = e.Item.FindControl("dgJiuDian") as DataGrid;
                if (dgJingQu!=null)
                {//加载景区
                    dgJingQu.DataSource = GetTable("select * from 表2");
                    dgJingQu.DataBind();
                }
                if (dgJiuDian != null)
                {//加载酒店
                    dgJiuDian.DataSource = GetTable("select * from 表3");
                    dgJiuDian.DataBind();
                }
            }
      

  16.   

    晕,1个就行了啊,还3个,我严重怀疑3个人用个repeater没(别多想,只是对事不对人)1个repeater,里面字段用<%# Eval()%>绑定或者Label绑定都可以
      

  17.   


    我服了。1个repeater加html代码输出段为了什么显示比三个高深那就是LZ问的吗?前面都说过了建议用全动态输出repeater不能代替布局。。
      

  18.   

    zouhuiyong给出的方法不行吧。我看可以啊。一个大的repeater里面包二个。
      

  19.   

    table设计   然后绑定就可以了吧
      

  20.   

    赋上链接:http://blog.csdn.net/caojin723/archive/2009/02/12/3880710.aspx
      

  21.   


    --------------
    楼主你把我的代码执行一下,肯定没问题,我经常用到这种多层嵌套的绑定,分页也可以实现,但你需要在那个内层绑定时处理页码,你想想,数据能读出第一页就能读出第二页。有一些东西,你不敢想,但不代表不能做。如果按输入html的方法,你倒不如回去用asp算了。
    .net控件太高级了可能用不了。
      

  22.   

    zouhuiyong说的挺有道理,我晚上再想下,明天中午来结贴 呵呵
      

  23.   

    我用过嵌套3个repeater的
    代码,你可以参考一下 <asp:Repeater ID="RepeaterShopping" runat="server" onitemdatabound="RepeaterShopping_ItemDataBound" >
            <ItemTemplate>
                <table class="RepeaterShoppingCss" width="100%" style="margin-bottom:20px;">
                    <tr class=" size16 " valign="bottom">
                        <td align="right" style=" width:10%; height:23px;"><input id="cBox" type="checkbox" class="cBoxCss" checked="checked" />卖家:</td>
                        <td ><a href="#"><%#DataBinder.Eval(Container.DataItem,"RealName") %></a></td>
                    </tr>
                    <tr>
                        <td colspan="2">
                        <asp:Repeater ID="RepeaterProduct" runat="server" OnItemDataBound="RepeaterProduct_ItemDataBound">
                                <ItemTemplate>
                                    <table width="100%" class="RepeaterProductCss">
                                        <tr>
                                            <td align="right" style=" width:15%;"><input id="cBoxProduct" class="cBoxProductCss" type="checkbox" runat="server" checked="checked" value='<%#DataBinder.Eval(Container.DataItem, "ProductID") %>' />商品名称:</td>
                                            <td style=" width:30%"><%#DataBinder.Eval(Container.DataItem, "ProductName")%></td>
                                            <td >单价:<span class="RealPriceCss" style="display:none"></span></td>
                                            <td>
                                            <asp:Repeater ID="RepeaterPrice" runat="server">
                                                <ItemTemplate>
                                                <div class="PriceCss" min='<%#Eval("QuantityIntervalMin") %>' max='<%#Eval("QuantityIntervalMax")%>' price='<%#Eval("Price","{0:0.##}") %>'>
                                                <%#Eval("QuantityIntervalMin") %>~<%#Eval("QuantityIntervalMax")%>件:<%#Eval("Price","{0:0.##}") %>元
                                                </div>
                                                </ItemTemplate>
                                            </asp:Repeater>
                                            </td>
                                            <td style=" width:15%">总数量:<span class="SumQuantityCss"></span></td>
                                            <td style=" width:15%">金额:<span class="colorju"></span></td>
                                        </tr>
                                        <tr>
                                            <td colspan="6" align="center">
                                            <asp:Repeater ID="RepeaterDetail" runat="server">
                                                <ItemTemplate>
                                                <table width="100%" class="RepeaterDetailCss">
                                                    <tr class="color size12">
                                                        <td style=" width:5%; background-color:#FFFFFF;"></td>
                                                        <td style=" width:10%"><input id="cBoxDetail" class="cBoxDetailCss" type="checkbox" runat="server" checked="checked" value='<%#DataBinder.Eval(Container.DataItem, "ProductDetailID")%>' /></td>
                                                        <td style=" width:40%; height:64px;"><%#DataBinder.Eval(Container.DataItem,"ProductName") %></td>
                                                        <td style=" width:10%"><%#DataBinder.Eval(Container.DataItem, "ColorName")%></td>
                                                        <td style=" width:10%"><%#DataBinder.Eval(Container.DataItem, "SizeName")%></td>
                                                        <td style=" width:15%"><Chsoft:SmartNumericTextBox ID="SmartQuantity" CssClass="QuantityCss" Width="100px" runat="server" Text='<%#Eval("Quantity") %>'></Chsoft:SmartNumericTextBox></td>
                                                        <td style=" width:10%"><asp:LinkButton ID="lbtnDelete" runat="server" CommandName="DeleteDetail" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "ID")%>' OnCommand="LbtnOperate_Command">删除</asp:LinkButton></td>
                                                    </tr>
                                                </table>
                                                </ItemTemplate>
                                            </asp:Repeater>
                                            </td>
                                        </tr>
                                    </table>
                                </ItemTemplate>
                             </asp:Repeater>
                        </td>
                    </tr>
                    <tr valign="bottom" style="height:40px;">
                        <td colspan="2" align="right" class="size14 bold">总价(不包含运费):<span class="sumAmountCss">787885.00</span>元</td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right">
                            <asp:Button ID="Button2" runat="server" CssClass="mybutton01" Text="再逛逛" CommandName="LookSumbit" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"SellMemberID") %>' OnCommand="LbtnOperate_Command"/>
                            <asp:Button ID="Button1" runat="server" CssClass="mybutton03" Text="立即购买"  CommandName="BuyerSumbit" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"SellMemberID") %>' OnCommand="LbtnOperate_Command"/>
                            </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:Repeater>
      

  24.   

    用个repeater 然后 你在这里面布局 里面的内容用数据绑定 很方便的
      

  25.   

    repeater 怎么弄,主要还是要回到 lz 你的 数据库 是怎么设计的
      

  26.   

    控件,只是用来解决我们一些常用功能的方法集,但并不是解决所有功能的方法.
    服务端控件是很好用,我也经常使用.但不要走极端.
    事实上,再复杂的页面,如果你一定要使用某种方法来实现的话,都一定可以实现出来,只不过是代价大或小而已.
    楼主的问题,也是在这个范围内.repeater控件不是不可以做到,但复杂度\效率等并不会下降.相反,这种要求如果在后台拼HTML输出的话,可能还更快捷一些.在适当的地方,使用适当的方法;而不要在不适当的地方,使用不适当的方法.
      

  27.   

    可以不用repeater。。先把页面画好。。在后台用StringBuider 拼出来..动态数据在cs代码里面绑定即可
      

  28.   

    2个repeater嵌套,基本上可以实现。第一列和第二列用一个repeater绑定,右边一块需要一个repeater.