【问题标题】:Session variables updating, but not refreshing gridview会话变量更新,但不刷新gridview
【发布时间】:2018-04-16 21:26:03
【问题描述】:

我有一个 GridView,它有两个用于过滤 select 语句的会话变量(TimeStartTimeFinish)。我有一个默认值,它在 GridView 中显示正确的信息。

我有两个文本模式设置为时间的 ASP 文本框,我需要更新这些值。这些更新会话变量(已设置要检查的标签值),但不更新我的 GridView 的 select 语句。

我在同一页面上为另一个 GridView 做了一些相同的事情,唯一的区别是 Int32 中的会话变量是从 GridView 的 IndexChanged 事件中设置的,我很困惑为什么它不适用于这个。

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# 代码:

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

【问题讨论】:

    标签: c# asp.net sql-server gridview session-variables


    【解决方案1】:

    当任何textbox 值发生更改时,尝试重新绑定您的Gridview

     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();
     }
    

    【讨论】:

      猜你喜欢
      • 2022-11-20
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多