2012-12-19 50 views
1

我願做asp.net和C#以下:的SqlDataSource查詢的中繼器使用中繼元素

將SqlDataSource獲取的從數據庫模板列表。然後,在重複器中,爲每個模板創建一個DropDownList元素,其中包含每個模板的找到的類型。這可能嗎?

<asp:SqlDataSource ID="src_template" runat="server" ConnectionString="<%$ ConnectionStrings:VConStr %>" SelectCommand="SELECT [template] FROM [template]" /> 
<asp:Repeater ID="rpt_template" runat="server" DataSourceID="src_template" OnItemCommand="rpt_template_ItemCommand"> 
    <ItemTemplate> 
     <p> 
      <asp:SqlDataSource ID="src_types" runat="server" ConnectionString="<%$ ConnectionStrings:VConStr %>" SelectCommand='SELECT [type] FROM [templatetype] WHERE [template] = <%# Eval("template") %>' /> 
      <label for="DropDownList1"><%# Eval("template") %></label> 
      <asp:DropDownList ID="DropDownList1" runat="server" DatasourceID="src_types" DataTextField="type" DataValueField="type" /> 
     </p> 
    </ItemTemplate> 
</asp:Repeater> 

如何正確填寫零件?

回答

1

嘗試是這樣的:

<ItemTemplate> 
    <asp:HiddenField ID="template" runat="server" 
     Value='<%# Eval("template") %>' 
    /> 

    <asp:SqlDataSource ID="src_types" runat="server" 
     ConnectionString="<%$ ConnectionStrings:VConStr %>" 
     SelectCommand="SELECT [type] FROM [templatetype] WHERE [template] = @template" 
    > 
     <SelectParameters> 
      <asp:ControlParameter 
       Name="template" 
       Type="String" 
       ControlID="template" 
       PropertyName="Value" 
      /> 
     </SelectParameters> 
    </asp:SqlDataSource> 

    ... 
</ItemTemplate> 
+0

可惜我不能訪問與ControlParameter.I價值不明白,數據源值是如何在轉發處理... – more

+0

@more:奇怪的;這個對我有用。你是否收到錯誤信息? –

+0

Doh,我錯過了HiddenField。第二天再次嘗試後立即開始工作。謝謝! – more