当要将页面发回服务器时,浏览器会收集每个控件的当前值并将其粘贴到一个字符串中。然后,此回发数据将通过HTTP POST发送回服务器。
Q1 - 除了控件的Text属性和SelectedIndexchanged(因此除了用户输入数据)之外,控件的其他属性/值是否也被浏览器保存为回发数据?
Q2 - 对于GridView,浏览器在回发中保存哪些值?只有那些用户选择编辑的行?
字节
答案 0 :(得分:4)
帖子中会返回textarea
,select
,input
和button
字段的值。每个值都是一个键值对,其中键是元素的name
属性。
我认为我已经获得了帖子中包含数据的所有元素:
textarea
:包含value
属性,即在textarea中键入的内容。
select
:包含所选选项的value
属性。如果所选选项未指定value
属性,则使用该选项的文本。
input type="text"
:包含value
属性,即输入字段中输入的内容。
input type="password"
:包含value
属性,即输入字段中输入的内容。
input type="submit"
:如果按钮用于发送表单,则会包含value
属性,即按钮的文本。
input type="image"
:如果使用该按钮发送表单,则会在帖子中发送图像中鼠标点击的坐标。通过在元素名称中添加“.x”和“.y”来创建x和y坐标的名称。
input type="checkbox"
:如果选中该复选框,则会包含value
属性。如果元素没有指定value
属性,则使用值“on”。
input type="radio"
:value
属性包含在每个组的所选项目中。 (组是所有具有相同名称的单选按钮。)
input type="file"
:包含所选文件的内容以及原始文件路径(或仅包含文件名,具体取决于浏览器和安全设置)。
input type="hidden"
:包含value
属性。
button
:如果按钮用于发送表单,则会包含innerText
属性,即删除了任何html标记的按钮文本。
TextBox
控件呈现为input type="text"
,input type="password"
或textarea
,具体取决于TextMode
属性。 DropDownList
控件呈现为select
元素。 Button
控件呈现为input type="submit"
。 CheckBox
控件呈现为input type="checkbox"
。等等......检查渲染的html代码,看看实际呈现的html元素是什么。
如果GridView包含任何可编辑的表单字段,或者如果它导致回发(例如,通过在列表中导航),则GridView仅包含帖子中的任何数据。在进行回发时,有一些信息存储在一对隐藏字段中,因此任何导致回发但不自行发送任何表单数据的控件(例如LinkButton)都包含有关导致回发的原因的信息。 / p>
控件也可以将数据放入ViewState中,ViewState保存在表单中的隐藏字段中。这也包含在帖子中,但它只是发送到浏览器并再次返回,而不会被浏览器更改。
答案 1 :(得分:1)
我不是asp程序员,所以我无法给出确切的答案,但我建议你使用firefox和插件Live Http Headers以及Firebug(控制台部分)。
通过此设置,您将能够看到浏览器向您的服务器发送的确切数据。
答案 2 :(得分:1)
您可能也想使用ViewState解码器。您可以在浏览器扩展中获取它们,并在网络上使用它们。 Scott Gu在此推荐一个:http://weblogs.asp.net/scottgu/archive/2003/02/16/2495.aspx。 ViewState应该告诉您需要知道的持久服务器属性。