1

asp.netとC#で次のことを行いたいと思います。

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>

where-partを正しく入力するにはどうすればよいですか?

4

1 に答える 1

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>
于 2012-12-19T14:11:56.397 に答える