を実行しており、 ID のSSRS rpt
Web プロジェクトでこれを複製する必要があります。sqldatasource
パラメーターはssrs rpt
、入力される限り完全に機能しますが、Web バージョンで同じことを実行しようとすると、2 番目のパラメーター リストが入力されません。
パラメータは、パラメータShip
で何が選択されているかによって異なりCruiseLine
ます。
Web版のパラメータは次のとおりです。
<tr>
<td>
Select a CruiseLine:
<telerik:radcombobox id="RadComboBox1" runat="server" checkboxes="True" enablecheckallitemscheckbox="False"
skin="Web20" sort="Ascending" allowcustomtext="True" datasourceid="SqlDataSource1"
datatextfield="CruiseLine" datavaluefield="CruiseLine">
</telerik:radcombobox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator3" ValidationGroup="A"
ControlToValidate="RadComboBox1" ErrorMessage="Choose a CruiseLine!"></asp:RequiredFieldValidator>
</td>
<td>
Select a Ship:
<telerik:radcombobox id="RadComboBox2" runat="server" checkboxes="True" enablecheckallitemscheckbox="False"
skin="Web20" sort="Ascending" allowcustomtext="True" datasourceid="SqlDataSource2"
datatextfield="Ship" datavaluefield="Ship">
</telerik:radcombobox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator2" ValidationGroup="A"
ControlToValidate="RadComboBox2" ErrorMessage="Choose a Ship!"></asp:RequiredFieldValidator>
</td>
</tr>
対応する SQL データ ソースは次のとおりです。
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PrepaidConnectionString %>"
SelectCommand="SelectCruiseLine" DataSourceMode="DataSet" EnableCaching="true"
SelectCommandType="StoredProcedure"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:PrepaidConnectionString %>"
SelectCommand="SelectShip" DataSourceMode="DataSet" EnableCaching="true" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="CruiseLine" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
最初の sqldatasource は、(ストアド プロシージャから) 次の SQL を実行し、リストに問題なく入力します。
SELECT DISTINCT CruiseLine
FROM dbo.ShipProductPrices
ORDER BY CruiseLine
2 番目sqldatasource
は、次の sql を実行します (これもストアド プロシージャから)。
ALTER PROCEDURE [dbo].[SelectShip]
@CruiseLine NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT Ship
FROM dbo.ShipProductPrices
WHERE CruiseLine IN (SELECT * FROM dbo.SplitParameterValues(@CruiseLine, ','))
ORDER BY Ship
END
今のところ、クルーズラインを 1 つだけ選択しています。2 番目のコンボボックスのドロップダウン リストをプルダウンすると、次のようなクエリが実行され、Ship コンボボックスが入力されるはずです。
SELECT DISTINCT Ship
FROM dbo.ShipProductPrices
WHERE CruiseLine IN (SELECT * FROM dbo.SplitParameterValues('CCL', ','))
ORDER BY Ship
Ship のパラメータ タイプと の タイプに注意しcombobox
てSelectParameter
くださいSelectShip datasource
。それらは少し異なります。これが違いを生むかどうかはわかりません。
上記で手動でSelectShip SPROC
実行した のUDF
一部である を実行sproc
し、SQL Management Studio でデータを取得します。
2 番目の値を入力するにはどうすればよいcombobox
ですか?