数値を追加する TextBox があり、ボタンをクリックすると、最初の TextBox に入力した数値に応じて新しいテキスト ボックスが作成されます。
たとえば、TextBox に 5 を入力してボタンを押すと、ページに 5 つの新しいテキスト ボックスが表示されます。
今、作成されたこのすべてのテキストボックスで RequiredFieldValidator を作成しようとしていますが、機能させることができません。データベースに挿入する別のボタンがあり、すべての新しいテキストボックスからのこの値が必要です。
誰かが私のコードを見て、正しい軌道に乗っているかどうかを確認し、コードを修正して機能するようにすることができますか?
protected void btnGenerateControl_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(Qty.Text);
for (int i = 1; i <= Count; i++)
{
Label lbl = new Label();
TextBox txtbox = new TextBox();
RequiredFieldValidator rfv = new RequiredFieldValidator();
string ValidationGroup = "Group2";
string ErrorMessage = "Bitte Flotten ID eingeben";
lbl.Text = " Flotten ID " + (i).ToString() + " ";
txtbox.EnableViewState = true;
rfv.ControlToValidate = txtbox.Text;
rfv.ErrorMessage = ErrorMessage;
rfv.ValidationGroup = ValidationGroup;
rfv.ForeColor = System.Drawing.Color.Red;
Label lbl1 = new Label();
TextBox txtbox1 = new TextBox();
txtbox1.EnableViewState = true;
pnlTextBoxes.Controls.Add(lbl);
pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='FlottenID" + i + "'type='text' />"));
pnlTextBoxes.Controls.Add(lbl1);
lbl1.Text = " Bemerkungen: ";
pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='Info" + i + "'type='text' />"));
pnlTextBoxes.Controls.Add(new LiteralControl("<br /><br />"));
}
}
ご協力いただきありがとうございます。RequiredFieldValidator は動作するようになりましたが、データベースに挿入すると、txtbox と txtbox1 の値が空になります。私は今、インサートに何か問題があります。
私は今そこで何を変えなければなりませんか?
protected void btnGenerateControl_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(Qty.Text);
for (int i = 1; i <= Count; i++)
{
string ValidationGroup = "Group2";
string ErrorMessage = "Bitte Flotten ID eingeben";
Label lbl = new Label();
lbl.Text = " Flotten ID " + (i).ToString() + " ";
TextBox txtbox = new TextBox();
txtbox.EnableViewState = true;
txtbox.ID = "txt" + i;
TextBox txtbox1 = new TextBox();
txtbox.EnableViewState = true;
txtbox.ID = "txt" + i;
RequiredFieldValidator rfv = new RequiredFieldValidator();
rfv.ControlToValidate = txtbox.ID;
rfv.ErrorMessage = ErrorMessage;
rfv.ID = "rfv" + i;
rfv.ValidationGroup = ValidationGroup;
rfv.ForeColor = System.Drawing.Color.Red;
Label lbl1 = new Label();
lbl1.Text = " Bemerkungen: ";
pnlTextBoxes.Controls.Add(lbl);
//pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='FlottenID" + i + "'type='text' />"));
pnlTextBoxes.Controls.Add(txtbox);
pnlTextBoxes.Controls.Add(rfv);
pnlTextBoxes.Controls.Add(lbl1);
pnlTextBoxes.Controls.Add(txtbox1);
//pnlTextBoxes.Controls.Add(new LiteralControl("<input id='txt' name='Info" + i + "'type='text' />"));
pnlTextBoxes.Controls.Add(new LiteralControl("<br /><br />"));
}
}
protected void btnAddOrder_Click(object sender, EventArgs e)
{
int Count = Convert.ToInt32(Qty.Text);
for (int i = 1; i <= Count; i++)
{
String query = "insert into Orders (CustID, OrderDate, Time, ProductID, ProjectID, Status, FlottenID, Info)values('" + CustID.Text + "','" + OrderDate.Text + "','" + Time.Text + "','" + ProductID.Value + "','" + ProjectID.Value + "','" + Status.Value + "','" + Request.Form["FlottenID" + i.ToString()] + "','" + Request.Form["Info" + i.ToString()] + "')";
String query1 = "commit;";
DataLayer.DataConnector dat = new DataLayer.DataConnector("Provider=SQLOLEDB; data source=rzwsrv010;database=event;user ID=event;password=event; Persist Security Info=False");
dat.DataInsert(query);
dat.DataInsert(query1);
}
Response.Redirect("NewOrder.aspx");
}