- - PR -
Control.ID プロパティ に設定した値が変わる
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-12-21 15:52
いつもお世話になります。
掲題の件に関してアドバイスを頂きたいのですが、 サーバサイドで動的にテーブルを作成するプログラムを作っております。以下ソース例 Dim tblRow As TableRow Dim tblCel As TableCell tblCel = New TableCell tblCel.ID = "$" tblRow.Cells.Add(tblCel) tblCel = FindControl("$") としたときにFindControlの戻り値がNothingで返ってきてしまいます。 tblRow.Cells.Add(tblCel)のtblCelのプロパティを見たところ ClientID : "_" ID: "$" UniqueID: "$" とClientID が"_"に変わっていたので、FindControl("_")としてみましたが結果は同じくNothingでした。 記号という意味で"&"を指定した場合は正常にできました。 正常にtblCel.IDを指定しFindControlで取得する手段はあるのでしょうか? tblCel.IDに記号を入れてもエラーにならなかったので気にしなかったのですが、記号は使用するべきではないのでしょうか? | ||||||||||||
|
投稿日時: 2007-12-21 16:13
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.control.id(VS.80).aspx
_________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2007-12-21 16:42
パーサーエラーになってくれれば使用しなければいいで解決なのですが、 FindControlでNothingが返ってくるだけで、ブラウザで表示は行えています。 | ||||||||||||
|
投稿日時: 2007-12-21 18:14
パーサーエラーが具体的にどうなるかご存知だという事でしょうか? パーサーエラーになったらどうなるか私はわかりませんので、ブラウザに表示されても ASP.NET の内部ではコントロールの識別ができない可能性もあるかもって思いますが。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2007-12-21 18:26
無効な文字を含めるとパーサーエラーになるというなら"&"を指定した場合もコントロールの識別ができずFindControlでNothingが返ると思うのですが? これはまた別の問題と考えます。 | ||||||||||||
|
投稿日時: 2007-12-21 20:06
いまいちどこで困っているのかわかりません。ClientID が"_"に変わるのが問題なのですか? これは$がコントロールの階層構造を表すために使う記号だからだと思います。 |
1