用于AccessDataSource SelectCommand的ASP.NET DropDownList?

时间:2014-08-12 14:13:15

标签: asp.net gridview drop-down-menu filter

尝试添加SelectParameter并选择下拉列表。页面不会失败,但类名称不会被过滤掉 - 不接受参数@ClassName关联参数工作正常,但@ClassName没有!

WHERE ClassName = @ClassName   

    

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataSourceID="AccessDataSource1" BackColor="White" BorderColor="#999999" 
    BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" 
    GridLines="Vertical" AllowSorting="True">
    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
        <asp:CheckBox ID="RowLevelCheckBox" runat="server" />
    </ItemTemplate>
    </asp:TemplateField>
        <asp:BoundField DataField="UsersDataTbl.StudentID" HeaderText="FDID" SortExpression="StudentID" />
        <asp:BoundField DataField="UsersDataTbl.LastName" HeaderText="Last Name" SortExpression="LastName" />
        <asp:BoundField DataField="UsersDataTbl.FirstName" HeaderText="First Name" SortExpression="FirstName" />
        <asp:BoundField DataField="UsersDataTbl.UserName" HeaderText="User Name" SortExpression="UserName" />
        <asp:BoundField DataField="UsersDataTbl.Affiliation" HeaderText="Affiliation" SortExpression="Affiliation" />
        <asp:BoundField DataField="UsersDataTbl.UID" HeaderText="UID" SortExpression="UID" />
    </Columns>
    <FooterStyle BackColor="#CCCCCC" />
    <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="#6699CC" />
</asp:GridView>

<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
DataFile="<%$ ConnectionStrings:AccessSubSiteString %>"
    SelectCommand="SELECT [UsersDataTbl.StudentID], [UsersDataTbl.UserName], 
    [UsersDataTbl.LastName], [UsersDataTbl.FirstName], [UsersDataTbl.Affiliation], [UsersDataTbl.UID] 
    FROM [UsersDataTbl] WHERE [UsersDataTbl.Active] = True AND (UsersDataTbl.Affiliation = @Affiliation) 
    AND ([UsersDataTbl.UID] NOT IN (SELECT UID FROM [EnrollmentsTbl] WHERE ClassName = @ClassName AND Completed = True))
    ORDER BY [UsersDataTbl.LastName]" >
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownList2" Name="Affiliation" PropertyName="SelectedValue" Type="String" /> 
        <asp:ControlParameter ControlID="DropDownList1" Name="ClassName" PropertyName="SelectedValue" Type="String" />           
    </SelectParameters>
</asp:AccessDataSource>

1 个答案:

答案 0 :(得分:0)

不确定为什么反转ControlParameter的顺序修复了问题,移动了ClassName以上的Affiliation解决了问题......任何想法为什么?

<asp:ControlParameter ControlID="DropDownList1" Name="ClassName" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList2" Name="Affiliation" PropertyName="SelectedValue" Type="String" />