2013-02-18 59 views
1

我有兩個控件和一個LinqDataSource在一箇中繼器內。
LinqDataSource選擇使用從第一個控件獲得的條件。 由於我的第二個元素使用LinqDataSource,我需要提供不同的ID,否則數據對於中繼器中的所有第二個元素都是相同的。如何將不同的ID分配給中繼器中的元素?

是否有任何方式分配不同的ID或任何解決方案來實現我的目標?

這裏是設置了用於更好地理解示例代碼:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource4"> 
    <ItemTemplate> 
     <table > 
      <tr> 
       <td> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <asp:LinqDataSource runat="server" EntityTypeName="" ID="LinqDataSourceX" ContextTypeName="Fr.FrestandehEntities" Select="new (Value, Id)" TableName="DProperties" Where="DKey.Key == @DKeyp"> 
         <WhereParameters> 
          <asp:ControlParameter ControlID="TextBox1" PropertyName="Text" DefaultValue="X" Name="DKeyp" Type="Object"></asp:ControlParameter> 
         </WhereParameters> 
        </asp:LinqDataSource> 
        <telerik:RadComboBox ID="RadComboBox77" runat="server" DataSourceID="LinqDataSource5" DataTextField="Key" DataValueField="Key"></telerik:RadComboBox> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 
</asp:Repeater> 

回答

3

您需要在代碼中的中繼ItemDataBound事件要做到這一點落後。對不起,這是在VB ...

Private Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles Repeater1.ItemDataBound 

     If e.Item.ItemType = ListItemType.AlternatingItem OrElse e.Item.ItemType = ListItemType.Item Then 

      Dim lds As LinqDataSource = CType(e.Item.FindControl("RadComboBox77"), LinqDataSource) 
      CType(e.Item.FindControl("RadComboBox77"), RadComboBox).DataSourceID = lds.ID 

     End If 


    End Sub 

我使用C#轉換工具,爲此,所以我不知道它是多麼準確。

private void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { 
    if (((e.Item.ItemType == ListItemType.AlternatingItem) 
       || (e.Item.ItemType == ListItemType.Item))) { 
     LinqDataSource lds = ((LinqDataSource)(e.Item.FindControl("RadComboBox77"))); 
     ((RadComboBox)(e.Item.FindControl("RadComboBox77"))).DataSourceID = lds.ID; 
    } 
} 
+0

標記爲答案,除非我找到更好的答案。謝謝 ;) – 2013-02-18 19:09:09

相關問題