C# 如何在页面上保持值为静态
当用户从考勤页转到另一页时,我想使文本框和标签的值在页面上保持不变。我设置了C# 如何在页面上保持值为静态,c#,asp.net,C#,Asp.net,当用户从考勤页转到另一页时,我想使文本框和标签的值在页面上保持不变。我设置了enableviewstate=“true”,但当我转到另一页时,它仍然不保存数据,它消失了 以下是我的html代码: <tr> <td class="auto-style3">Login Time:</td> <td class="auto-style4"> <asp:Label ID="lblLogin" enableviewsta
enableviewstate=“true”
,但当我转到另一页时,它仍然不保存数据,它消失了
以下是我的html代码:
<tr>
<td class="auto-style3">Login Time:</td>
<td class="auto-style4">
<asp:Label ID="lblLogin" enableviewstate="true" runat="server"></asp:Label>
</td>
<td class="auto-style5">Logout Time:</td>
<td>
<asp:Label ID="lblLogout" enableviewstate="true" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="auto-style3">Remarks:</td>
<td class="auto-style4">
<asp:TextBox ID="TextBoxRemarks" runat="server" enableviewstate="true" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
Viewstate仅适用于相同的页面回发 从MSDN: 视图状态提供特定ASP.NET页面的状态信息。如果您需要在多个页面上使用信息,或者如果您需要在对网站的访问中保留这些信息,则必须使用另一种方法来维护状态。您可以使用应用程序状态、会话状态或配置文件属性 若您希望在收到该页面的请求时看到相同的数据,则应将数据存储在应用程序状态、会话状态或配置文件属性中
然后您应该手动将此数据绑定到pages元素。我看到您读取了session对象,但您在哪里设置了它?@PatrickHofman我在登录页面上设置了它……我不清楚它到底出了什么问题。你能解释一下实际发生了什么,复制的步骤是什么吗?哪种形式不保持值?你能为什么做标记吗?@PatrickHofman实际上我已经创建了一个员工考勤系统,我有一个登录页面(我在这里创建会话),当员工登录到主页时,他会在点击“登录(每日考勤)”后在考勤页面上标记他的考勤按钮,如果他迟到了,他会发表一些评论,下次他回来时,我希望登录时间和评论值在该页面上保持不变,但当我在标记出席人数后进入另一页面时,这些值不再可用……似乎您的回答没有帮助,因为OP似乎根本没有使用视图状态。他使用Session对象来存储变量,他提到他使用了enableviewstate=true,但是当他转到第一段的另一页时,数据消失了。我认为op希望,当他从另一个页面查看所述页面时,数据将保留。
TimeSpan logintime = System.DateTime.Now.TimeOfDay;
TimeSpan time = TimeSpan.Parse("09:20:00.000");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lblAttendance.Text = Session["user"].ToString().Split('^')[1];
lblDate.Text = DateTime.Now.ToString("dd/MM/yyyy");
}
}
protected void btnLogin_Click(object sender, EventArgs e)
{
if (btnLogin.Text == "Login(Daily Attendance)")
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["REGDataConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("Track_UserLog", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@EmployeeId", Session["user"].ToString().Split('^')[0]);
cmd.ExecuteNonQuery();
con.Close();
lblLogin.Text = System.DateTime.Now.ToString("hh:mm");
btnLogin.Text = "Logout(Daily Attendance)";
if (logintime > time)//&& TextBoxRemarks.Text.ToString() == String.Empty)
{
DateTime today = DateTime.Today;
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["REGDataConnectionString"].ConnectionString);
cn.Open();
SqlCommand cd = new SqlCommand("update tblAttendanceDetails set Remarks=@rem where LoginDate=convert(date,GETDATE()) AND EmployeeId=' " + Session["User"].ToString().Split('^')[0] + " '", cn);
cd.Parameters.AddWithValue("@rem", TextBoxRemarks.Text);
cd.ExecuteNonQuery();
cn.Close();
}
}
else if (btnLogin.Text == "Logout(Daily Attendance)")
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["REGDataConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("Track_logout", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@EmployeeId", Session["user"].ToString().Split('^')[0]);
cmd.ExecuteNonQuery();
lblLogout.Text = System.DateTime.Now.ToString("hh:mm");
btnLogin.Text = "Login(Daily Attendance)";
}
}