<% if (this.AppId == 5)
                       {%>
                    <%#DataBinder.Eval(Container.DataItem, "blogContent")%>
                    <% }%>
                    <%  else if (this.AppId == 2)
                       { %>
                        <%#DataBinder.Eval(Container.DataItem, "SignContent")%>
                    <%  }%>当appId等于5的时候的
后台repeater的dataSource和appId等于其他的时候不同
但是输出都需要的,改怎么处理

解决方案 »

  1.   

    AppId在后台作为绑定这个repeater的条件之一,在AppId变更的事件中重新绑定repeater
      

  2.   

    道理与gridview一样
     在databound时间里面判断处理
      

  3.   

    就是一个repeater的数据源可能绑定的是不一样的数据库表
    而前台有一个地方都是要显示同样的一个内容,但是数据库字段名不一样,该怎么处理那
      

  4.   

    repeat 应当和datalist差不多。
     <asp:DataList ID="DataTables" runat="server"  OnItemDataBound="setTableSkin" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" RepeatColumns="8" RepeatDirection="Horizontal" GridLines="Both" >
                        <ItemTemplate>
                            <div>
                            <asp:Label ID="RoomName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"房间名") %>'></asp:Label>
                               <br />
                             <asp:HiddenField ID="tableStatus" runat="server" Value='<%# Eval("状态") %>' />
                   <asp:HiddenField ID="isLock" runat="server" Value='<%# Eval("是否锁定") %>' />
                            
                            <asp:Button ID="btnTableNo" runat="server" Text='<%#Eval("桌台号")%>'
                             CommandArgument='<%# Eval("桌台号") %>' CommandName="SelectTable" Height="50px" Width="92px" OnCommand="btnTableNo_Click"  />
                            </div>
                           
                           
                             
                        </ItemTemplate>
                        
                        <ItemStyle ForeColor="#000066" />
                                     </asp:DataList>
     
    protected void setTableSkin(object Sender,DataListItemEventArgs e)
        {
            HiddenField Status = (HiddenField)e.Item.FindControl("tableStatus");
            HiddenField isLock = (HiddenField)e.Item.FindControl("isLock");
            if (Status.Value == "1")
            {
                ((Button)e.Item.FindControl("btnTableNo")).BackColor = Color.Aquamarine;
    ;
            }
            else if (Status.Value == "2")
            {
                ((Button)e.Item.FindControl("btnTableNo")).BackColor = Color.YellowGreen;
            }
            else
                ((Button)e.Item.FindControl("btnTableNo")).BackColor = Color.Honeydew;
            if (isLock.Value=="1")
            {
                ((Button)e.Item.FindControl("btnTableNo")).BackColor = Color.Gold;
            }
            
        }
      

  5.   

     OnItemDataBound="setTableSkin" 
    关键在这个事件:
     OnItemDataBound="setTableSkin" 
      

  6.   

    虽然不太明白楼主的问题,但是这个逻辑处理放后台容易处理些吧?后台执行DataSource.Bind(),前面就只需要负责绑定值。