使用最初未使用的 SelectParameter 初始化网格视图

本文关键字:SelectParameter 初始化 网格 视图 未使用 | 更新日期: 2023-09-27 18:32:46

有没有办法在 SelectCommand 中未调用的数据源的 SelectParameters 中定义 SessionParamters?

我希望定义参数,以便在初始页面生成后可以使用它,但是当它未在 SelectCommand 中使用时,数据源似乎不起作用 - 调用它的 GridView 显示为空,但在排除未使用的参数时生成正常。

例如,以下定义将成功填充网格视图:

    <asp:SqlDataSource ID="DataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" SelectCommand="SELECT * FROM Customers WHERE @UsedParameter='Green'">
        <SelectParameters>
            <asp:SessionParameter Name="UsedParameter" SessionField="Parameter1" />              
        </SelectParameters>
    </asp:SqlDataSource>

而以下内容不会填充网格视图:

        <asp:SqlDataSource ID="DataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" SelectCommand="SELECT * FROM Customers WHERE @UsedParameter='Green'">
        <SelectParameters>
            <asp:SessionParameter Name="UsedParameter" SessionField="Parameter1" />  
            <asp:SessionParameter Name="UnUsedParameter2" SessionField="Parameter2" />
        </SelectParameters>
    </asp:SqlDataSource>

使用最初未使用的 SelectParameter 初始化网格视图

这很有趣...我想我以前在忘记删除参数时见过这个问题。 既然您稍后可能会更改 select 命令以使用其他参数,为什么不在那时直接添加参数?

.VB

    Dim p As New SessionParameter("UnUsedParameter2", "Parameter2")
    DataSource1.SelectParameters.Add(p)

C#

     SessionParameter p = new SessionParameter("UnUsedParameter2", "Parameter2")
     DataSource1.SelectParameters.Add(p);