简体   繁体   中英

Session variables updating, but not refreshing gridview

I have a GridView which has two session vairables used to filter the select statement ( TimeStart and TimeFinish ). I have a default value for these, which displays the correct information in the GridView.

I have two ASP TextBoxes with TextMode set to Time which I need to update these values. These update the session variables (have set a label's value to check), but do not update the select statement of my GridView.

I've done something Identical for another GridView on the same page, the only difference being that the session variable in an Int32 and being set from a GridView's IndexChanged event, and am confused as to why it's not working for this one.

Source for GridView:

<asp:GridView ID="gvAvailableVets" runat="server" AutoGenerateColumns="False" DataKeyNames="VetID" DataSourceID="AvailableVetsDataSource">
        <Columns>
            <asp:BoundField DataField="VetID" HeaderText="VetID" ReadOnly="True" SortExpression="VetID" />
            <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
            <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
            <asp:BoundField DataField="MobileNumber" HeaderText="MobileNumber" SortExpression="MobileNumber" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="AvailableVetsDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:VetPracticeConnectionString %>" SelectCommand="SELECT DISTINCT Veternarians.VetID, FirstName, LastName, MobileNumber FROM dbo.Veternarians
INNER JOIN dbo.VetHours
ON Veternarians.VetID = VetHours.VetID
INNER JOIN dbo.Appointments
ON Veternarians.VetID = Appointments.VetID
WHERE @beginTime &gt; VetHours.StartTime
AND  @endTime &lt; VetHours.EndTime
AND (@beginTime &gt; Appointments.EndTime
OR @endTime &lt; Appointments.BeginTime) ">
                <SelectParameters>
                    <asp:SessionParameter DefaultValue="9:00" Name="beginTime" SessionField="TimeStart" Type="String" />
                    <asp:SessionParameter DefaultValue="10:00" Name="endTime" SessionField="TimeFinish" Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>

C# code behind for the TextBoxes:

protected void txtTimeBegin_TextChanged(object sender, EventArgs e) {
    Session["TimeStart"] = txtTimeBegin.Text;
    // Used for debugging
    lblDebug.Text = Session["TimeStart"].ToString();
}

protected void txtTimeEnd_TextChanged(object sender, EventArgs e) {
    Session["TimeFinish"] = txtTimeEnd.Text;
}

Try to rebind your Gridview when any textbox value changed.

 protected void txtTimeBegin_TextChanged(object sender, EventArgs e) 
 {
  Session["TimeStart"] = txtTimeBegin.Text;
  gvAvailableVets.DataBind();
// Used for debugging
  lblDebug.Text = Session["TimeStart"].ToString();
 }
 protected void txtTimeEnd_TextChanged(object sender, EventArgs e) 
 {
  Session["TimeFinish"] = txtTimeEnd.Text;
  gvAvailableVets.DataBind();
 }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM