2011-06-28 14 views
0

私はasp.net 3.5に取り組んでいます。私は動的にタイプ= 'ラジオ'のHTML入力コントロールのリストを生成するような要件があります。私は任意のラジオコントロールをクリックすると、それはjavascript関数に行くし、フォームを提出する。クリックしたラジオ入力の値に基づいて、関連するデータが別のコントロールに読み込まれます。asp.netのポストバック後に制御状態を保持することはできません

すべての機能が正常に動作しています。 しかし、私の問題は、ポストバック後にページが送信された後に、クリックされたラジオ入力がチェックされていないことです。 クリックしたラジオボタンの状態を保持する方法。

実際に私はjavascript function.Thenで隠しフィールドにクリックしたラジオボタンを格納し、その隠しフィールドから値を取得しようとし、プロパティを設定するラジオボタンに変換= true.Butは動作しません。

だから私を助けてください。

protected void Page_Init(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      IQueryable<tblOrganization> orglist = from o in db.tblOrganizations 
               where o.CreatedBy == "Licensee" && o.RefID == user.UserID 
               select o; 
     if (orglist != null && orglist.Count() > 0) 
     { 
      string list = "<table border='0' cellpadding='0' cellspacing='0' width='350px'>"; 
      foreach (tblOrganization o in orglist) 
      { 
       list += "<tr>"; 
       list += "<td style='width:25px;' align='right' valign='top'><input type='radio' runat='server' name='org' id='" + o.OrgID + "' ViewStateEnabled='true' onclick='javascript:fnBindGroup(" + o.OrgID + ",this)' /></td>"; 
       list += "<td style='width:325px;hieght:25px' align='left' valign='top'><a id='" + o.OrgID + "' href='#' onclick='javascript:fnSelectOrg(" + o.OrgID + ")' >" + o.OrgName + "</a></td>"; 
       list += "</tr>"; 
      } 
      list += "</table>"; 
      divOrg.InnerHtml = list; 
     } 
     } 
    } 
+0

コードを投稿してください。初期化+ポストバック。 – Arthur

答えて

1

私はMVCではなくASP.NETクラシックを想定しています。

Page_Loadイベントでコントロールを作成すると、ViewStateはPage_Initの後とPage_Loadの前に評価されるため、すべての状態はポストバック後に破棄されます。しかし、Page_Loadでコントロールを作成した場合、Viewstateが評価されたときにコントロールは存在しません。

も参照してくださいhttp://msdn.microsoft.com/en-us/library/ms178472.aspx

EDIT

をPage_Initするコントロールの作成を移動してみてくださいああ、私は参照してください。

1)ASP.NETコントロールを動的に作成する場合は、最初のGet要求だけでなく、毎回それらを再作成する必要があります。 ASP.NETは、あなたのコントロールだけを維持しません。

2)プレーンなHTMLを公開しています。 ASP.NETはそれらについて知りません。しかし:

1)ASP.NETコントロールを作成し、page_initに(コントロールツリーに追加します)

:Requestオブジェクトでは、次の2つのオプションがあり、元のデータに
var value = Request["someid"] 

投稿を見つけることができます

2)普通のHTML入力タグを書き出して(OnPreRenderで行うことができます)、リクエスト[...]で結果を読み込みます。

+0

私はpage_loadからpage_init.butにコントロールの作成を変更しました。 – Mallikarjuna

1

アーサー氏は、Page_Load()イベントでコントロールを作成し、Page_Init ()。役に立たない場合は、コードを投稿してください。

関連する問題