1

関連するすべての投稿を読みましたが、現在直面している問題を理解できませんでした。Oninitで、次のようにテキストボックスを含むテーブルを作成します。テキストボックスにIDを割り当てると、textchangedイベントは発生しませんが、発生しません。起動するIDを割り当てます。理由を説明することはできません。親切に助けてください。

    protected override void OnInit(EventArgs e)
    {

    PopulateTextBoxes();
    base.OnInit(e);
    }
protected void PopulateTextBoxes()
{
    int quantityRequired = 0;
    quantityRequired =GetQuantity();
    for (int j = 0; j < quantityRequired; j++)
    {
        TableRow row = new TableRow();
        TableCell cell1 = new TableCell();
        TextBox tb = new TextBox();
        //tb.ID = j.ToString() +":RowTbx";---> this when uncommented does not fire my      tb_textChanged event while left commented the textchanged event is fired. Cant understand why? How is assigning an ID affect event Firing, I need to have the ID to further update my Db.                    
        tb.AutoPostBack = true;
        tb.TextChanged += new EventHandler(tb_TextChanged);
        cell1.Controls.Add(tb);
        row.Cells.Add(cell1);
        TableCell cell2 = new TableCell();
        CheckBox chBox = new CheckBox();
        chBox.CheckedChanged += new EventHandler(chBox_CheckedChanged);
        chBox.AutoPostBack = true;
        cell2.Controls.Add(chBox);
        row.Cells.Add(cell2);
        TableCell cell3 = new TableCell();
        Image img = new Image();
        img.Width = Unit.Pixel(25);
        img.Height = Unit.Pixel(25);
        img.ImageUrl = "HttpRuntime.AppDomainAppVirtualPath" + "/Images/" +"img.jpeg";
        cell3.Controls.Add(img);
        row.Cells.Add(cell3);
        tbl_Serial.Rows.Add(row);
    }
}
private void tb_TextChanged(object sender, EventArgs e)
{
    // TODO: Implement this method
    //throw new NotImplementedException();
}

ありがとうございました

4

2 に答える 2

2

設定している ID は有効なコントロール ID ではありません。

参照: Control.ID

このプロパティの有効な値は、英数字とアンダースコア文字 ( _ ) の組み合わせのみです。スペースやその他の無効な文字を含めると、ASP.NET ページ パーサー エラーが発生します。

これを試して:

tb.ID = "RowTbx" + j;
于 2013-02-13T04:18:16.703 に答える
1

使用:しないでIDください。代わりにこれを試してください

tb.ID = j.ToString() + "_RowTbx";
于 2013-02-13T04:15:32.743 に答える