こんにちは私はこの問題を抱えています。動的に追加されたコントロールのバリデータを削除する
最初のセルには動的に生成されたコントロール(TextBox)、2番目にボタン(MyCustomButton)、最後のセル(RegularExpressionValidator)には検証コントロールが挿入されたテーブルがあります。検証コントローラは、TextBoxのデータが正しいかどうかをチェックします。ボタンの機能は、このボタン、テキストボックス、およびバリデーターを含む行を削除することです。私は言ってポップアップ表示されます、それは例外に属している行を削除するには、そのボタンをクリックしたときに
私の問題は、「コントロールIDを見つけることができません 『MyTextBoxId』 『ControlToValidate』によって参照します」。
ここで、バリデータが削除され、この例外がポップアップするため、バリデータが検証するための検証ができません。私は最初にこのバリデータを削除しようとし、その行の残りの後、TextBoxの間違ったデータをクリアし、そのTextBoxの検証をオフにしますが、バリデータが削除された後もこの例外が発生します。
テーブル方式から取り外し
protected void DeleteMemberRow_Click(object sender, EventArgs e)
{
//Find row to remove
TableRow row = (TableRow)((MyCustomButton)sender).Parent.Parent;
//Custom list of controls - works fine
ControlsList.RemoveAll(x => x.id == row.ID.Replace("row", ""));
//MyTable is basic Table type
MyTable.Rows.Remove(row);
}
追加テーブルの行
Guid guid = Guid.NewGuid();
TextBox txt = new TextBox();
MyCustomButton btn = new MyCustomButton();
btn.Click += new System.EventHandler(DeleteMemberRow_Click);
btn.ID = "TeamMember" + guid + "btn";
txt.ID = "TeamMember" + guid;
RegularExpressionValidator validate = new RegularExpressionValidator();
validate.ValidationExpression = @"(\d{5}, ?)*\d{5}";
validate.ErrorMessage = "My error message";
validate.Attributes.Add("runat", "server");
validate.ControlToValidate = "TeamMember" + guid;
validate.Attributes.Add("Display", "none");
TableRow tRow = new TableRow();
tRow.ID = "Teammember" + guid + "row";
TableCell tCell2 = new TableCell();
TableCell tCell = new TableCell();
TableCell tCell1 = new TableCell();
tCell2.Controls.Add(validate);
tCell1.Controls.Add(btn);
tCell.Controls.Add(txt);
tRow.Cells.Add(tCell);
tRow.Cells.Add(tCell1);
tRow.Cells.Add(tCell2);
MyTable.Rows.Add(tRow);
任意の助けが理解されるであろう。ありがとうございました
あなたのページの読み込みイベントを表示できますか? –