我是否需要viewstate来输入控件,如复选框,文本框等?

Udi*_*pta 4 asp.net

EnableViewstate = false我和回发时,我的文本框控件保留文本值,但标签控件不保留.我正在更改按钮的单击事件上的标签和文本框的文本.

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox1.Text = "Message Changed";
    Label1.Text = "Message Changed";
}
Run Code Online (Sandbox Code Playgroud)

我的页面还有另一个按钮用于回发.

此外,如果我不需要viewstate用于此控件,那么是否有一个不需要viewstate的所有控件的列表?

Tim*_*ter 6

IPostBackDataHandler即使ViewState处于关闭状态,所有实现的控件都会加载它们的值.请注意,禁用ViewState时,TextChanged 类似事件和其他属性ForeColor不起作用.

这是一个实现的控件列表 IPostBackDataHandler

  • 复选框
  • CheckBoxList的
  • 下拉列表
  • HtmlInputCheckBox
  • HtmlInputFile
  • HtmlInputHidden
  • HtmlInputImage
  • HtmlInputRadioButton
  • 的HtmlInputText
  • HtmlSelect
  • HtmlTextArea
  • 的ImageButton
  • 列表框
  • 单选按钮列表
  • 文本框

即使View State设置为off,为什么文本框在回发期间会保留数据

无论何时提交页面或将页面发回服务器,整个表单数据都将作为请求的集合发布到服务器.该集合采用NamedValue集合的形式,此集合具有控件的uniqueid和控件的值的映射.您可以使用以下代码段从表单集中读取数据

//Reading textbox value from the form collection 
string textboxvalue = Request.Form[textbox1.UniqueID];
Run Code Online (Sandbox Code Playgroud)

ASP.NET使用此原语来更新控件的值.ASP.NET将IPostBackDataHandler用于从表单集合加载数据的控件.