簡體   English   中英

如何在回發的文字控制中保留用戶輸入?

[英]How to preserve user input in literal control on postback?

在Page_Init上,如果回發,我檢查是否單擊了一個名為Button1的按鈕,如果是,我將一個LiteralControl添加到名為Panel1的Panel:

Panel1.Controls.Add(new LiteralControl("Enter Code:<input type=\"text\" name=\"txtCode\"></td>"));  

如您所見,它只是文本“輸入代碼:”,后跟一個名為txtCode的TextBox。

我有一個第二個按鈕(Button2),當點擊時,我想檢索在txtCode中輸入的文本:

protected void Button2_Click(object sender, EventArgs e)
    {
        foreach (Control c in Panel1.Controls)
        {
            if (c is LiteralControl) ...                
        }
    }

我不知道該怎么做...我怎樣才能在txtCode中輸入文字?

您始終可以使用Request.Form集合:

string txtCode = Request.Form["txtCode"];

它將包含隨當前請求發布的所有值,無論是否為服務器端控件。

轉換后生成的輸入不會保持其值(HTTP GET然后POST),因為它不是具有ViewState的System.Web.UI.Control。 因此,用戶輸入的值在表單集合中,您可以嘗試從那里獲取它(Request.Form),但更簡單的方法是在Init(..)中添加TextBox。 之后,應該在POST上加載文本框的ViewState,您可以在其Text屬性中訪問用戶的輸入。

在Init()中:

_MyTextBox = new TextBox();
panel1.Controls.Add(_MyTextBox);

在Button_Click中:

var value = _MyTextBox.Text ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM