- - PR -
Aspxページからコードビハインドページ(.aspx.cs)の変数を参照する方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-11 17:09
ネット等で表題の件を検索して見ましたが、見つけられませんでした。
皆様のお知恵を拝借できれば幸いです。 .aspxページ <uc1:UserContorol Id="UserContorl1" runat="server" ShopId="XXX"> .aspx.cs public partial class ... { public int shopId=1; public int ShopId { get { return shopId; } } } 上記の様な場合で、.aspxのページのユーザーコントロールのShopIdのプロパティーに .aspx.csの変数shopIdの値を参照して取得したいのですが、その記述方法が分かりません。 .aspx.csページで、 UserContorl1.ShopId=shopId; とすれば動的に設定は可能かと思いますが、今回は、.aspxページの方で対処できればと考えております。 .aspxで下記の様な記述など試しましたが駄目でした。 ShopId="<%# shopId %>" どなたか教えて頂けましたら、大変助かります。 宜しくお願い致します 環境VS2005(C#) [ メッセージ編集済み 編集者: 骨骨★Rock! 編集日時 2007-09-11 17:54 ] | ||||||||
|
投稿日時: 2007-09-11 19:14
これは、Renderで実行されるのでそれより前にascx.cs側で参照するのは無理かと。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32663&forum=7 http://msdn2.microsoft.com/ja-jp/library/ms178135(VS.80).aspx | ||||||||
|
投稿日時: 2007-09-11 21:07
ご返信頂きましてありがとうございます。 こちらのスレッドは投稿前に見させていただきました。 .aspxページの変数を.csページで参照するという自分とは逆の事をされたかったスレッド内容だと理解しました。 こちらのスレッドの中で、どっとねっとふぁんさんが
とおっしゃっているので、.csのファイルが親、.aspxが子ならば、変数をプロパティーとして公開すれば、親の変数を子から参照する事ができるのかと思ったのですが、 そうではないのでしょうか? | ||||||||
|
投稿日時: 2007-09-11 21:58
「Aspxページからコードビハインドページ(.aspx.cs)の変数を参照する方法」ですよね。
だから逆にRenderのあとに設定された変数なら取得できるんじゃないですかね。 コードを書く大概のイベントはRenderより後ですから。
todoさんのはってくれたリンクをよく読みましょう。 <% =shopId %> じゃないですかね。 | ||||||||
|
投稿日時: 2007-09-11 22:04
バインドしていないのではないでしょうか。
ページ、もしくは該当のコントロールのDataBindメソッドのコールはしておられますか? | ||||||||
|
投稿日時: 2007-09-11 23:57
べるさん、kiyokuraさん
ご返信ありがとうございます。
kiyokuraさんのヒントからPage.DataBind();をページロードに追加したら思い通りの 動きをするようになりました。ありがとうございます。 <%# %>の記述方法は、データグリッドぐらいでしか書いた事がなかったので、こういった風に使えるとは知りませんでした。Page.DataBind()で.csの変数をAspxページにバインドしてあげる必要があったのですね。 べるさん、 投稿前に一応色々と違う書き方を試してみました。 以下、<%=%>を使った結果です。htmlタグに値を埋め込みたいときには<%=%>で ASP的に値を渡すことはできましたが、<asp:ではじまるサーバータグでは多分 利用できないのではないかと思います。(私の勝手な理解かもしれませんが…) ■ShopId="<%= ShopId %>" ⇒ビルドエラー Cannot create an object of type 'System.Int32' from its string representation '<%= ShopId %>' for the 'ShopId' property. (当方英語版のVSを利用しており、日本語でのエラー文章は分かりませんが、 'ShopId'のプロパティーとして文字列表現である'<%= ShopId %>'から'System.Int32'の型オブジェクトを生成する事ができません。) ■ShopId=<%= ShopId %> ⇒ビルドエラー Server tags cannot contain <% ... %> constructs. (サーバータグは<%...%>を構成することはできません) | ||||||||
|
投稿日時: 2007-09-12 00:15
失礼しました;;。。uc1:UserContorol のプロパティに設定するのは<%= %>は無理ですね。。
#そうか、Page自体もBindできるんですね。 |
1