2010-12-14 13 views
2

私はASC/C#開発者ではないことを教えて始めます。これは宿題です。 (私は、誰かが私が欲しいものを理解願っています:D、私は正確に用語を知らないので)Asp.netはコントロールからコンテンツを取得します

私は
<%@ Reference Control="~/FriendBox.ascx" %>
<div class="controlcontainer clearfix friendlist_containeritems" id="divFriends" runat="server"> </div>
のようなものを持っているFriends.aspxでFriends.aspxとFriends.aspx.cs

を持っていますFriends.aspx.csで

私はdivFriendsを移入するためにこれを持っている:私のページAに


foreach (FBUser user in list){ 
     Control control = LoadControl("FriendBox.ascx"); 
     FriendBox myControl = (FriendBox)control; 
     myControl.user = user;     
     divFriends.Controls.Add(myControl);     
    } 

はフォームを持っている、とdivFriendsはフォーム内です。このフォームにボタンがあります。私はちょうどボタンを押すと、私のページが提出され、私は選択されたチェックボックスから値を取得することができます。 (すべてのコントロールにチェックボックスがあります)

私はAjax(JQuery)経由でページを送信しようとするまで、Everithingは問題なく動作しました。 私の問題は、チェックボックスでさえ(私はそれらを選択することができます、それらを選択する)、私はチェックボックスから値をアクセスすることはできません、私はajaxの提出を行うことです。 これは私がチェックボックスから値を取得するために使用するコードです:

 
foreach(Control ctrl in divFriends.Controls) {
var friendBox = ctrl as FriendBox; //i can get here
if (friendBox != null) { //i never get here - because friendBox is allways null } }

How can i make the content from divFriends accesible when i submit my form with Jquery? Thanks in advance.

Edit: here is the javascript i use


$(document).ready(function() { 
     $('.big').click(function() { 
      //.big is my button 
      $('.big').attr('disabled', true);

 var form_form = $(document).find('form'); 
     $.ajax({ 
      type: 'POST', 
      url: form_form.attr('action'), 
      data: form_form.serialize(), 
      dataType: 'json', 
      success: function (data) {      
       console.log('success'); 
      }, 
      complete: function (XMLHttpRequest, textStatus) { 
       $('.big').attr('disabled', false); 
      } 
     }); 
     return false; 
    }); 

});


私はデータを提出することができますので、ジャバスクリプトが動作している、と私は戻って(JSON)のデータを受信することができ、私はsubmitedデータを見たとき、私は持っていけませんdivFriendsのチェックボックス

+0

フォームを送信しているjavascriptを表示できますか? – Josh

+0

それはかなり複雑な宿題です。 :/ – Greg

+2

あなたのコードビハインドには、コントロールを追加するforeachループがありますか?どのイベント、その周りの論理?また、リピーター/その他のデータバインドされたコントロールを使用して宣言的に(スペル?)ではなく動的にコントロールを追加する特別な理由はありますか? – RichardW1001

答えて

2

問題はasp.net状態管理の問題のようです。あなたはFriendBoxを一度だけ追加しています(おそらく、もしpage.ispostbackソートではないと仮定しています)。そして、各ページヒットではありません。 FriendBoxは動的に追加されているので、ポストバックから生き残っていないので、読んだときにFriendBoxは存在しません。

ビューステートが読み込まれる前に、ページが読み込まれるたびにFriendBoxを追加する必要があります。初期化中にコントロールを追加すると、Viewstateは値を追跡でき、おそらく問題を修正します。

関連する問題