使用最初未使用的SelectParameter初始化GridView

时间:2014-12-02 16:35:55

标签: c# asp.net gridview

有没有办法在SelectSmand中调用的DataSource的SelectParameters中定义SessionParamters?

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

例如,以下定义将成功填充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>

以下内容不会填充GridView:

        <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>

1 个答案:

答案 0 :(得分:1)

这很有意思......我想在忘记删除参数之前我已经看到了这个问题。由于您可能稍后要更改select命令以使用其他参数,为什么不在那时添加参数?

<强> VB

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

<强> C#

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