Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ViewState和客户端更改_C#_Asp.net_Javascript_Postback_Viewstate - Fatal编程技术网

C# ViewState和客户端更改

C# ViewState和客户端更改,c#,asp.net,javascript,postback,viewstate,C#,Asp.net,Javascript,Postback,Viewstate,我注意到一些控件(例如TextBox)在回发之间保留更改,即使更改是由客户端脚本进行的,而另一些控件(例如ListBox)则没有。谁能解释一下原因吗?有没有办法将第一个行为扩展到其他控件? 谢谢大家! 所有控件都会在回发之间保留它们的更改-除非您以编程方式再次创建它们 您的列表框可能会丢失更改,因为您在每次回发时都填充了它 尽力 if(!IsPostBack) { PopulateMyListBox() } 所有控件都会在回发之间保留它们的更改—除非您以编程方式再次创建它们 您的列表框可能会

我注意到一些控件(例如TextBox)在回发之间保留更改,即使更改是由客户端脚本进行的,而另一些控件(例如ListBox)则没有。谁能解释一下原因吗?有没有办法将第一个行为扩展到其他控件?
谢谢大家!

所有控件都会在回发之间保留它们的更改-除非您以编程方式再次创建它们

您的列表框可能会丢失更改,因为您在每次回发时都填充了它

尽力

if(!IsPostBack)
{
 PopulateMyListBox()
}

所有控件都会在回发之间保留它们的更改—除非您以编程方式再次创建它们

您的列表框可能会丢失更改,因为您在每次回发时都填充了它

尽力

if(!IsPostBack)
{
 PopulateMyListBox()
}

这取决于ListBox何时被数据绑定或ListItem何时被填充

通常,当ListBox是在另一个父控件(如中继器)内创建的,并且中继器在Page_Load事件中绑定了数据时,就会发生这种情况。这意味着在页面加载事件结束之前,列表框实际上不存在

ViewState将恢复到页面控件的Page_Init和Page_Load事件之间的列表框中。如果列表框的内容是在加载事件期间创建的,这意味着列表框的ViewState在回发后无法还原内容,并且无法跟踪并自动从回发中选择新的SelectedValue

如果本例中的中继器在Page_Init事件时绑定了数据,则在Page_Init事件之后,列表框的内容将准备就绪,并且ViewState能够正确还原并自动选择SelectedValue

我通常在Page_Init事件中绑定所有数据,以确保控件能够正确使用ViewState

有关更多详细信息,请查看ASP.NET web表单的页面生命周期


这取决于ListBox何时被数据绑定或ListItem何时被填充

通常,当ListBox是在另一个父控件(如中继器)内创建的,并且中继器在Page_Load事件中绑定了数据时,就会发生这种情况。这意味着在页面加载事件结束之前,列表框实际上不存在

ViewState将恢复到页面控件的Page_Init和Page_Load事件之间的列表框中。如果列表框的内容是在加载事件期间创建的,这意味着列表框的ViewState在回发后无法还原内容,并且无法跟踪并自动从回发中选择新的SelectedValue

如果本例中的中继器在Page_Init事件时绑定了数据,则在Page_Init事件之后,列表框的内容将准备就绪,并且ViewState能够正确还原并自动选择SelectedValue

我通常在Page_Init事件中绑定所有数据,以确保控件能够正确使用ViewState

有关更多详细信息,请查看ASP.NET web表单的页面生命周期


这些非更改文本框是否有可能标记为
ReadOnly
?这些非更改文本框是否有可能标记为
ReadOnly
?对不起,我没有说清楚。当通过Javascript编辑控件时,会出现奇怪的行为。如果我在客户端编辑一个文本框,该值将保留在posback之后。另一方面,如果我编辑一个列表框(例如添加一个项目),则不会保留更改。我只是想知道为什么。查看状态-它会跟踪您在提供服务时在那里的所有选项page@astorcas当前位置你的评论比问题本身的措辞要好得多。可能有助于编辑您的问题文本。@astorcas文本框将返回您在他体内键入的内容,通过javascript以太手动。列表框是发回所选的项目,而不是你在上面键入的内容,如果你通过javascript更改列表框的内容,你需要用其他方式发送此更改以发回,因此你需要再次创建它。对不起,我没有说清楚。当通过Javascript编辑控件时,会出现奇怪的行为。如果我在客户端编辑一个文本框,该值将保留在posback之后。另一方面,如果我编辑一个列表框(例如添加一个项目),则不会保留更改。我只是想知道为什么。查看状态-它会跟踪您在提供服务时在那里的所有选项page@astorcas当前位置你的评论比问题本身的措辞要好得多。可能有助于编辑您的问题文本。@astorcas文本框将返回您在他体内键入的内容,通过javascript以太手动。列表框是发回所选项目,而不是您在其上键入的内容,如果您通过javascript更改列表框的内容,您需要通过其他方式发回此更改,因此您需要再次创建它。