我正在执行一个SSRS rpt
并且需要在一个带有sqldatasource
id 的web 项目中复制它。
就填充参数而言,这些ssrs rpt
参数工作得很好,但是当我尝试在网络版本中完成相同的事情时,第二个参数列表永远不会被填充。
该Ship
参数取决于在CruiseLine
参数中选择的内容。
网页版参数如下:
<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
第二个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
现在,我只选择一条邮轮,我希望当我拉下第二个组合框的下拉列表时,它应该运行类似于以下内容的查询并填充 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 中输出。
我需要做什么才能填充第二个combobox
?