0

我有这样的表格:

    <%@ 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;

      }

它显示旧值而不是更新的代码。

4

2 回答 2

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 属性。如果页面不是回发,它将加载旧值。否则它将让您在文本框中使用新值。

于 2013-07-22T18:40:43.567 回答
0

使用它来获得价值:

string s=Request.Form[txtRoomNum.UniqueID];
于 2013-07-22T17:04:02.057 回答