2016-03-16 76 views
0

我完全新的ASP.net如何將嵌套Repeater綁定到一個ObjectDataSource

我的數據庫模型是在這裏

enter image description here

,因爲它顯示在上面的圖片我有一個表它的名字是Tours,它有一個名爲TourId的列。

我有一個對象的數據源在我的表單,中繼器的代碼如下:

<asp:ObjectDataSource ID="ODSTTitle" runat="server" SelectMethod="GetById" TypeName="ATourRep"> 
      <SelectParameters> 
       <asp:QueryStringParameter DefaultValue="0" Name="Id" QueryStringField="CID" Type="Int32" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 

      <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"> 
      </asp:ObjectDataSource> 


<div class="container" id="TourDetail"> 

      <asp:Repeater ID="RptTourDetail" runat="server" DataSourceID="ODSTTitle" ItemType="Tour" EnableViewState="false"> 

       <ItemTemplate> 
        <li> 

         <div class="row"> 



          <div class="col-md-3"> 
            <%-- NestedRepeater --%> 

           <asp:Repeater ItemType="TourDate" ID="RptTourNested" runat="server" EnableViewState="false"> 
            <ItemTemplate> 
             <h2> 
                             <%-- What Should I write Here to have a list of each TourDate --%> 

             </h2> 
            </ItemTemplate> 
           </asp:Repeater> 
          </div> 

        <%-- This div works correctly --%> 
          <div class="col-md-6"> 
           <h4> 
            <%# Item.TName %> 
           </h4> 
           <p> 
            <%# Item.TDes %> 
           </p> 
          </div> 



         </div> 

        </li> 

       </ItemTemplate> 

      </asp:Repeater> 

     </div> 

爲代碼顯示存在,它有H2標籤嵌套的中繼器。我需要在h2標籤中顯示每個TourDates的列表。

我不知道如何綁定ObjectDataSource1來使用每個Tour的TourId,然後獲取該Tour的StartDates。而且我應該在嵌套的中繼器的H2標籤寫入表明旅遊的satrtdates ((沒有爲每個遊覽一個以上的開始日期))

,我在我的倉庫也

public IQueryable<TourDate> GetById(int Id) 
{ 
    return model.TourDates.Where(e => e.TourId == Id); 
} 
有這樣的方法

我用ObjectDataSource的默認值,然後通過eval綁定它,但它的劑量工作。

你有什麼建議嗎?或者我在structre中有錯,或者你認爲有沒有比嵌套的中繼器更好的地方?

回答

1

在父節點中,您需要實現一個Repeater.ItemDataBound事件,如https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound%28v=vs.110%29.aspx所述,然後在該事件中需要爲每個項目(行)獲取所需的信息並將數據源發送到內部中繼器,以及然後調用它的數據綁定函數。

+0

真的謝謝你的關心和幫助。我爲父轉發器創建ItemDataBound事件,但我仍然不知道在事件中寫什麼,以及如何將數據源發送到內部中繼器。如果可能的話,我想在對象數據源和代碼上使用。 public IQueryable GetById(int Id) { return model.TourDates.Where(e => e.TourId == Id); } –

+0

你有什麼想法如何解決這個問題,涉及到這一個:http://stackoverflow.com/questions/36172353/itemdatabound-in-nested-repeater?noredirect=1#comment59982500_36172353 –

+0

excuseme ..如果其可能plz在這個問題上再次幫助我。謝謝你http://stackoverflow.com/questions/36172353/itemdatabound-in-nested-repeater/36173467?noredirect=1#comment59988662_36173467 –