【问题标题】:How to get a Value from Table Iteration in C#如何从 C# 中的表迭代中获取值
【发布时间】:2012-04-09 12:24:27
【问题描述】:

我是编程新手,在 asp.net 工作。
我用迭代做了一个表,这是我的代码:

        int row2 = Convert.ToInt32(Request.QueryString["coll"]);
        Session.Add("sumColl", row2);
        TableRow tr2;
        TableCell tc2;
        TextBox tb2;
        RequiredFieldValidator rfv;

        for (int j = 0; j < row2; j++)
        {
            tr2 = new TableRow();
            tc2 = new TableCell();
            tc2.Controls.Add(new LiteralControl((j + 1).ToString()));
            tr2.Cells.Add(tc2);
            tc2 = new TableCell();
            tb2 = new TextBox();
            tb2.ID = "name" + (j + 1).ToString();
            btn = new Button();
            btn.ID = "search" + (j + 1).ToString();
            btn.Text = "Search";
            btn.OnClientClick = "javascript:openChild('popupA.aspx?dest=" + tb2.ID + "','win2')";
            btn.CausesValidation = false;
            rfv = new RequiredFieldValidator();
            rfv.ID = "rfvR" + (j + 1).ToString();
            rfv.ControlToValidate = tb2.ID;
            rfv.Display = ValidatorDisplay.Dynamic;
            rfv.ErrorMessage = "**";
            tc2.Controls.Add(tb2);
            tc2.Controls.Add(btn);
            tc2.Controls.Add(rfv);
            tr2.Cells.Add(tc2);
            tblA.Rows.Add(tr2);
        }    

我想从数据库中获取值,其中输入来自上表中的文本框。
得到值后,我想对它们求和。
问题是我不知道如何从上面的迭代中获取输入。
我做了类似下面的代码。

        int sumsColl = Convert.ToInt32(Session["sumColl"]);
        double sum_coll = 0;

        for (int j = 0; j < sumsColl; j++)
        {
            TextBox tb2 = new TextBox();
            tb2 = this.Page.FindControl("name" + (j + 1).ToString()) as TextBox;
            if (tb2 != null)
            {                    
                string sqlCol2 = "select p from somewhere where nameColl = '" + tb2.Text + "'";
                DataTable dtcol2 = db.setDataTableSQL(sqlCol2);
                for (int i = 0; i < j; i++)
                {
                   Session.Add("P" + (j + 1).ToString(), dtcol2.Rows[0]["p"]);
                }

                sum_coll = sum_coll + Convert.ToDouble(Session["P"+(j + 1).ToString()]);
            }

        }

        if (sum_coll < value)
        {
            Msg.Text = "Error . " + Msg.Text;
            valid = false;
        }

我知道这是一团糟,请帮助我,如果您需要其他线索,请告诉我。

【问题讨论】:

  • 哇。好吧,我认为你最好的选择是问几个更集中的问题(不是一次全部)。试着做一小部分,看看是否有效,如果你遇到困难,问那个具体的问题。对这个问题也有帮助的是添加一些关于你正在尝试做什么的文本。你在一开始就给出了一大段代码,但人们通常不想深入研究代码来弄清楚它应该做什么。通常最好先告诉他们你想做什么,然后他们就可以开始阅读代码了。

标签: c# asp.net textbox iteration


【解决方案1】:

我不知道你想做什么。试试 DataGrid 或 DataGridView、ListView 控件来显示数据。你的代码看起来很复杂。那里有专门显示表格数据的控件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2014-09-26
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多