如何使用c#更新asp.net中文本框的值?

时间:2014-04-04 20:56:04

标签: c# asp.net textbox post-update

我使用C#在asp.net中有这个程序 的.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div id="first" runat="server">
        Text Boxes
        <asp:TextBox ID="txtnr" runat="server"></asp:TextBox><br />
        <asp:Button ID="btnxt1" runat="server" Text="Next" onclick="btnxt1_Click"/><br />
    </div>
    <div id="second" runat="server">
        <asp:Table ID="tbl" runat="server"></asp:Table>
        <asp:Button ID="btnx2" runat="server" Text="Next" onclick="btnx2_Click"/><br />
    </div>

    <div id="third" runat="server">
        <asp:Label ID="lblxx" runat="server" Text=""></asp:Label><br />
    </div>
    </form>
</body>
</html>

的.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{

    static int numr = 0;
    static TableHeaderCell[] tc2;
    static TextBox[] txtb;
    protected void Page_Load(object sender, EventArgs e){}

    protected void btnxt1_Click(object sender, EventArgs e)
    {
        numr = int.Parse(txtnr.Text);
        TableHeaderRow tr;
        tc2 = new TableHeaderCell[numr];
        txtb = new TextBox[numr];
        for (int i = 0; i < numr; i++)
        {
            tr = new TableHeaderRow();
            tc2[i] = new TableHeaderCell();
            txtb[i] = new TextBox();
            txtb[i].Text = "w";
            tc2[i].Controls.Add(txtb[i]);
            tr.Controls.Add(tc2[i]);
            tbl.Controls.Add(tr);
        }
    }

    protected void btnx2_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < numr; i++)
            lblxx.Text += txtb[i].Text+"<br/>";
    }
}

计划步骤:

  • 输入要显示的文本框数(例如= 4)并单击“下一步”
  • 将出现四个文本框(程序设置textbox =“w”的值,以了解问题)
  • 用户可以为四个文本框的文本设置其他值(例如:1,2,3,4),然后单击“下一步”
  • 最后,程序打印文本框的值,但问题是程序 将打印:wwww不是“1234”:( ??

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题是由于动态控件(如你的)在回发后不会自动保持状态,你应该自己处理它。

请按this link查看非常相似的问题,然后this link查看相应的解决方案。