-2
私はプログラミングには慣れていないので、asp.netで作業しています。
私は反復を持つテーブルを作り、ここに私のコードです:C#でテーブル反復から値を取得する方法
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;
}
私はこれが混乱していることを知っています。あなたが別の手掛かりが必要な場合は私を助けてください。
ワウ。さて、あなたの最善の策は多分もっと集中的な質問をすることです(すべてではありません)。小さな塊を作って、それがうまくいくかどうかを見てください。 また、この質問に役立つものは、正確に何をしようとしているのかに関するテキストを追加することです。最初は大量のコードを書いていましたが、しばしば人々は何をすべきかを理解するためにコードを歩き回りたくありません。通常は、まず何をしようとしているのかを伝える方がいいですし、そのことを念頭に置いてコードを読むことができます。 – Beska