1

ユーザーコントロールuc1にテキストボックスがあります。この uc1 を default.aspx というページに埋め込みました。私の問題は、アプリケーションを実行してテキストボックスにデータを入力した後、ページを更新するときに、テキストボックスに入力した値を表示し、テキストボックスをクリアしたくないことです。これを達成する方法についてのコードを教えてください。よろしくお願いします。

4

3 に答える 3

0

テキストボックスの値をクリアせずにページを更新できました。私は以下のようにそれを行いました: 私は以下のように UC1.vb でパブリック プロパティを作成しました: パブリック プロパティ textbox_value() As String

    Get
        If Session("textbox1") IsNot Nothing Then
            Return Session("textbox1").ToString()
        Else
            Return ""
        End If
    End Get
    Set(value As String)
        Session("textbox1") = value
    End Set
End Property

そして、ユーザー コントロールの page_load イベントに以下のコードを追加しました: If IsPostBack Then textbox_value= textbox1.Text ElseIf Not IsPostBack Then ' ページが最初に読み込まれたとき、またはページが更新されたとき

それが役に立てば幸い。

于 2012-12-28T16:13:18.723 に答える
0

aspx.cs ページの上部にグローバル変数を作成します。

 public string textboxValue
    {
        get
        {
            if (ViewState["textboxValue"] != null)
                return ViewState["textboxValue"].toString();
            else
                return "";
        }

        set
        {
            ViewState["textboxValue"] = value;
        }
    }

次に、PageLoad() で、textboxValue に値を割り当てます。

protected void Page_Load(object sender, EventArgs e)
    {
if(!IsPostBack)
textboxValue = MyTextBox.Value;
else
MyTextBox.Value = textboxValue;
}

また、いつでも textboxValue を使用して MyTextBox の値を割り当てたり、便利な他の方法で使用したりすることもできます。

于 2012-12-27T17:25:49.953 に答える
0

すべての asp.net サーバー側コントロール ( runat="server") の既定の動作は、その状態を維持することです。ページが更新されたときにテキストボックスがクリアされている場合は、コードでその値を自分でクリアしている可能性があります。

テキスト ボックスまたはユーザー コントロールを動的に追加していますか? もしそうなら、あなたはそれをしていPageInitますか?後で追加すると、状態が失われる可能性があります。

于 2012-12-27T17:40:19.867 に答える