0

我在 asp.net 中有这个程序,使用 C# .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 not "1234" :( ??

这个问题怎么解决??

4

1 回答 1

0

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

请点击此链接获取非常相似的问题,然后点击此链接获取相应的解决方案。

于 2014-04-05T05:46:20.523 回答