为什么动态创建的HTML输入在回发后为空

时间:2010-06-15 09:36:24

标签: asp.net html dynamic

我动态地向页面添加HTML和标签。 但是在每次postbost之后,所有值都是空的。 我能为Solve做些什么?

3 个答案:

答案 0 :(得分:1)

确保您添加到页面的控件具有ID,并且在回发后ID相同。

答案 1 :(得分:1)

您必须在页面的Init事件中创建控件,在Page_Load中创建控件将不会保留viewstat,因为根据控件生命周期,必须在加载事件之前创建控件,并且在加载之前,控件将检索其viewstat信息。创建一个新事件Page_Init(确保在Page标签的第一行中写入Init =“Page_Init”)。并在此活动中创建您的控件。

答案 2 :(得分:1)

如果您希望在回传后保留值,请使用Request.Forms [key]

你会在这里获得键值对。您必须以某种修复格式准备输入,例如名称属性首先是值等。然后,如您所知格式,您可以将值归档到Page_load中。用户正则表达式用模式替换字符串。

string UpdatedText = Label25.Text;

foreach (string key in Request.Form.AllKeys)
{
    if (key.ToLower().StartsWith("recomandedspec_"))
    {
        string keyvalue = Request.Form[key];
        // this uses regular expression to replace input string with postback values
        UpdatedText = PreFillItem.FillTextBox(UpdatedText, keyvalue, key);  
    }
}

Label25.Text = UpdatedText;