我有一张表格:
<%@ Page Title="" Language="C#" MasterPageFile="~/site.master" AutoEventWireup="true"
Inherits="DataEntry_EntryForm1" EnableEventValidation="false" CodeBehind="Bio.aspx.cs" %>
<%@ MasterType VirtualPath="~/site.master" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Content" runat="Server">
<asp:TableRow>
<asp:TableCell >
<asp:Label ID="lblRoomNum" runat="server" Text="Room #" Width="100px" ></asp:Label>
</asp:TableCell>
<asp:TableCell HorizontalAlign="Left">
<asp:TextBox ID="txtRoomNum" runat="server" Width="100px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage=" Room # is required." ForeColor="Red" ControlToValidate="txtRoomNum"></asp:RequiredFieldValidator>
</asp:TableCell>
</asp:Table>
<div style="width: 300px; margin: 20px 250px">
<asp:Button ID="txtSubmit" runat="server" Text="Submit" OnClick="txtSubmit_Click" />
</div>
</asp:Content>
我使用相同的表单来创建新记录以及更新它。当我创建一个新记录时,它工作正常。 当我尝试使用已填写的数据更新记录时,表单不会保留该值。相反,它保留了之前的价值。
我在做什么事吗?
以下是代码隐藏代码:
protected void txtSubmit_Click(object sender, EventArgs e)
{
string s = txtRoomNum.Text;
}
它显示旧值而不是更新的代码。
答案 0 :(得分:1)
您应该查看 IsPostBack 属性。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
loadOldValue();
}
}
public void loadOldValue()
{
txtRoomNum.Text = "OLD VALUE";
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string s = txtRoomNum.Text;
}
说明:每次单击提交按钮时,Page_Load()函数都会调用。因此,如果您在Page_Load()中加载旧值,它将始终具有旧值。 要避免这种情况,请使用!IsPostBack属性。如果页面不是回发帖子,则会加载旧值。否则,它将允许您在文本框中使用新值。
答案 1 :(得分:0)
用它来获取价值:
string s=Request.Form[txtRoomNum.UniqueID];