1

コード ビハインドで動的 RadiobuttonLists の一部として作成されたいくつかの入力コントロール (テキスト) があります (テキスト ボックスが各ラジオボタンの隣に配置されるように)。

RadioButtonList radioOption = new RadioButtonList();

radiobuttonlist.Items.Add(new ListItem(dt.Rows[i][9].ToString() + " <input id=\"" + name + "\" runat=\"server\" type=\"text\" value=\"Enter text\" />")

すべてのコントロールは UpdatePanel 内にあります。

コードビハインドで入力タグを更新して、値を次のように取得するにはどうすればよいですか。

value="<%= this.InputValue %>" /> 

その理由は、Page_Load の値にアクセス/設定できるようにするためです (ポストバックのように、入力テキストが消えます)。

    protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
        this.InputValue = "something"; 
    } 
} 

何か案は?

ありがとう!!!

4

3 に答える 3

1

ポストバック間でデータを保持していないため、値は常に消えています。これもしない

"<%= this.InputValue %>"

あなたが思うようにレンダリングします。<% %> タグは、ブラウザではなくサーバーによってレンダリングされます。代わりに、ビューステートまたはセッションを使用して、ポストバック間で値を保持してください。それについて助けが必要な場合は、コントロールのコードと行き詰まっている場所をさらに投稿してください

于 2013-03-27T13:36:17.620 に答える
1

ASP.NET Page Life Cycleで問題が発生していると思います。

コントロールをページのコントロール コレクションに動的に追加する場合は、適切なタイミングで設定する必要があります。上記のリンクされたドキュメントから:

開始ステージが完了した後、初期化ステージが開始する前に発生します。

このイベントは次の目的で使用します:
...

  • 動的コントロールを作成または再作成します。

...

このようにして、通常の ASP.NET ビュー ステートを使用するだけで、PostBacks 全体で情報を永続化できます。

Page_PreInitイベント中に動的な RadioButtonLists を作成すると、ほとんどの問題が解決されると思います。

protected void Page_PreInit(Object sender, EventArgs e)
{
    RadioButtonList radioOption = new RadioButtonList();
    radiobuttonlist.Items.Add(new ListItem(dt.Rows[i][9].ToString() + " <input id=\"" + name + "\" runat=\"server\" type=\"text\" value=\"Enter text\" />")
}
于 2013-03-27T13:51:36.553 に答える
1

UpdatePanel.Update methodコンテンツを新しい値で更新するために、コードビハインドで使用することをお勧めします

注:更新するには、フィールドInputValueがセクションUpdatePanelにある必要があります

リンク: http://msdn.microsoft.com/fr-fr/library/system.web.ui.updatepanel.update.aspx

于 2013-03-27T13:52:00.960 に答える