2013-02-18 60 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

相关问题