[英]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.