控件不会在页面加载时使用空白参数绑定到SqlDataSource

时间:2013-01-25 09:16:28

标签: asp.net sqldatasource

假设您有一个如下所示的SQLDataSource:

<asp:SqlDataSource ID="sqldsSample" runat="server" 
    ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
    SelectCommand="SELECT [col1], [col2] FROM [tbl] WHERE [col3] = @val) ORDER BY [col1] DESC;">
    <SelectParameters>
        <asp:Parameter DefaultValue="False" Name="val" Type="Boolean" />
        <asp:Parameter DefaultValue="" Name="val2" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

假设您已决定要在此处声明'val2'参数,并且您不想在代码隐藏中稍后添加和/或删除参数(例如,更改SelectCommand以进行某些过滤)有一些额外的标准)。

它会在没有错误的情况下失败 - 控件将显示为空。

2 个答案:

答案 0 :(得分:0)

即使未使用参数,也必须为参数指定默认值。例如,只需输入空格字符即可:

<asp:Parameter DefaultValue=" " Name="val2" Type="String" />

请注意,如果省略DefaultValue属性,它仍然无效。

答案 1 :(得分:0)

SqlDataSource上还有一个CancelSelectOnNullParameter参数-如果希望任何参数为null,则需要将其设置为false。

不是很明显,它吸引了我几次!