将会话变量传递给ASP.Net中的filterParameter

时间:2014-04-01 14:13:13

标签: asp.net vb.net session

我在ASP.Net工作。我试图将会话变量传递给gridview控件。当我删除会话变量参数时,我用来提供gridview的下拉列表正常工作。当我添加会话变量时,它会显示所有内容。

这是我的页面加载事件背后的代码(我使用的是VB.net):

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim ScreenerID As Int32
    Dim intS As Int32
    Session("ScreenerID") = 20
    intS = CType(Session.Item("ScreenerID"), Int32)

 End Sub

我的ASP.Net代码如下:

<%@ Page Title="Home Page" Language="VB"  AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="SAP._Default" %>


<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>



<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Screening Portal</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>   

         <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
        <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">

            <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="Screening">
                <ContentTemplate>
                    <asp:Label ID="Label2" runat="server" Text="Pull For Screening "></asp:Label>

<asp:DropDownList ID="DropDownList1" runat="server"><asp:ListItem>10</asp:ListItem>
<asp:ListItem>20</asp:ListItem>
</asp:DropDownList>



<asp:Button ID="Button1" runat="server" Text="Add Applicants" />



                    <asp:Label ID="Label3" runat="server" Text="Choose Campus: "></asp:Label>
                    <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged">

                        <asp:ListItem Text="All" Value=""></asp:ListItem>
                        <asp:ListItem>CRC</asp:ListItem>
                        <asp:ListItem>GHS</asp:ListItem>
                        <asp:ListItem>STL</asp:ListItem>
                        <asp:ListItem>WPH</asp:ListItem>

                    </asp:DropDownList>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:ScreenerView %>" ProviderName="<%$ ConnectionStrings:ScreenerView.ProviderName %>" 
                        SelectCommand="SELECT [ScreenerID], [LEGAL_FNAME], [LEGAL_LNAME], [APPL_PERSON_ID], [AAMC_ID], [GENDER], [URM], [RecMCAT], [SciGPA], [LEGAL_RES_STATE_CD], [PullDate], [First] FROM [vw_Screener]" 
                        FilterExpression="ScreenerID = {0} AND First='{1}'">


                        <FilterParameters>
                            <asp:Parameter Name="intS" Type="int32" />
                            <asp:ControlParameter ControlID="DropDownList2" PropertyName="SelectedValue" Type="String" DefaultValue=""/>
          </FilterParameters> 


</asp:SqlDataSource>


                    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" CellPadding="4" ForeColor="#333333" GridLines="None">
                        <AlternatingRowStyle BackColor="White" />
                        <Columns>
<asp:BoundField DataField="ScreenerID" HeaderText="ScreenerID" SortExpression="ScreenerID" Visible="False"></asp:BoundField>
<asp:BoundField DataField="LEGAL_FNAME" HeaderText="First Name" SortExpression="LEGAL_FNAME" />
<asp:BoundField DataField="LEGAL_LNAME" HeaderText="Last Name" SortExpression="LEGAL_LNAME" />
<asp:BoundField DataField="APPL_PERSON_ID" HeaderText="APPL_PERSON_ID" SortExpression="APPL_PERSON_ID" Visible="False" />
<asp:BoundField DataField="AAMC_ID" HeaderText="AAMC" SortExpression="AAMC_ID" />
<asp:BoundField DataField="GENDER" HeaderText="Gender" SortExpression="GENDER" />
<asp:BoundField DataField="URM" HeaderText="URM" SortExpression="URM" />
<asp:BoundField DataField="RecMCAT" HeaderText="MCAT" SortExpression="RecMCAT" />
<asp:BoundField DataField="SciGPA" HeaderText="Sci. GPA" SortExpression="SciGPA" />
<asp:BoundField DataField="LEGAL_RES_STATE_CD" HeaderText="State" SortExpression="LEGAL_RES_STATE_CD" />
<asp:BoundField DataField="PullDate" HeaderText="Date Pulled" DataFormatString = "{0:d}"   SortExpression="PullDate" />
<asp:BoundField DataField="First" HeaderText="First Choice CC" SortExpression="First" />
</Columns>
                        <EditRowStyle BackColor="#2461BF" />
                        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                        <RowStyle BackColor="#EFF3FB" />
                        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                        <SortedAscendingCellStyle BackColor="#F5F7FB" />
                        <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                        <SortedDescendingCellStyle BackColor="#E9EBEF" />
                        <SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>




</ContentTemplate>




</cc1:TabPanel>

            <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="Query">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Search "></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>


</ContentTemplate>




</cc1:TabPanel>

            <cc1:TabPanel ID="TabPanel3" runat="server" HeaderText="Manage Invitations">
                <ContentTemplate>


</ContentTemplate>




</cc1:TabPanel>

            <cc1:TabPanel ID="TabPanel4" runat="server" HeaderText="Reports">
                <ContentTemplate>


</ContentTemplate>




</cc1:TabPanel>

            <cc1:TabPanel ID="TabPanel5" runat="server" HeaderText="Admin">
                <ContentTemplate>


</ContentTemplate>




</cc1:TabPanel>


        </cc1:TabContainer>
        <br />

    </div>
    </form>
</body>
</html>

我想我正在做一些简单的事情需要快速解决,但它超出了我的范围。谢谢。

1 个答案:

答案 0 :(得分:0)

由于 intS 变化不大,为什么不将它提供给select语句而不是应用filter参数? 您的想法是什么?

ASPX SqlDataSource1:

SelectCommand="SELECT [ScreenerID], [LEGAL_FNAME], [LEGAL_LNAME], 
[APPL_PERSON_ID], [AAMC_ID], [GENDER], [URM], [RecMCAT], [SciGPA], [LEGAL_RES_STATE_CD],  
[PullDate], [First] 
FROM [vw_Screener]
WHERE [First] = @First"    <--  Notice the WHERE Clause

FilterParameters 中删除<asp:Parameter Name="intS" Type="int32" />,然后将FilterExpression更改为:

FilterExpression="First='{0}'"

但您必须在[strong> SelectParameters 部分中添加[First]作为参数,如下所示:

<SelectParameters>
    <asp:Parameter Name="First" />
</SelectParameters>

VB.NET代码隐藏:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim ScreenerID As Int32
    Dim intS As Int32
    Session("ScreenerID") = 20
    intS = CType(Session.Item("ScreenerID"), Int32)

    SqlDataSource1.SelectParameters.Add("@First ",intS) '<-- Here is where we set intS
End Sub