Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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
Javascript 标签不';由于下拉列表的选定索引更改而发生回发时,不能保留其文本_Javascript_C#_Asp.net_Viewstate - Fatal编程技术网

Javascript 标签不';由于下拉列表的选定索引更改而发生回发时,不能保留其文本

Javascript 标签不';由于下拉列表的选定索引更改而发生回发时,不能保留其文本,javascript,c#,asp.net,viewstate,Javascript,C#,Asp.net,Viewstate,我正在用ASP.NET开发一个网站。 在那里我有一个页面,用户可以写文章。因此,用户在文本框中键入的内容将显示在屏幕右侧的预览窗口中。问题是,有几个下拉列表可用,其中Autopostback值设置为true,因此在用户在文本框中键入某些内容后,如果用户从下拉列表页面中选择了一个项目,则会发生回发,并且预览窗口中的所有内容都被清除。所有的东西都放在更新面板中 这是我的预览窗口代码示例 <asp:Label runat="server" ID="lblPreviewContact

我正在用ASP.NET开发一个网站。 在那里我有一个页面,用户可以写文章。因此,用户在文本框中键入的内容将显示在屏幕右侧的预览窗口中。问题是,有几个下拉列表可用,其中Autopostback值设置为true,因此在用户在文本框中键入某些内容后,如果用户从下拉列表页面中选择了一个项目,则会发生回发,并且预览窗口中的所有内容都被清除。所有的东西都放在更新面板中

这是我的预览窗口代码示例

       <asp:Label runat="server" ID="lblPreviewContactName"></asp:Label>
                            <br />
       <asp:Label runat="server" ID="lblPreviewContactEmail"></asp:Label>
                            <br />
       <asp:Label runat="server" ID="lblPreviewContactPhone"></asp:Label>



当用户在textbox上键入内容时,我使用javascript实时更改Label控件的文本。所以在回发之后,标签的文本被清除

我知道这与Viewstate有关。那么在哪里应用呢?
发生回发时是否触发任何事件?因此,我可以将我所有的viewstate保存机制放在那里。

使用文本框(多行)而不是标签。ASP.net标签仅设计为在服务器端更改,因此对标签执行的任何客户端(浏览器中的javascript)更改将保持在视图状态,因此回发后将重置。但是对文本框所做的更改即使在回发后仍将占主导地位,因为它们在viewstate中保持


您还可以对textbox进行一些CSS样式设置,使其看起来像一个标签。

如果您更改标签客户端的值,该标签将不会发送回服务器,因此一旦页面发回,它们将被清除。您还必须更改回发的其他内容,以便在回发期间重置标签。除了修改标签外,还可以创建与每个标签对应的asp.net隐藏表单字段,并更改其值。然后在回发中,检查该值并将相应标签的文本属性设置为隐藏字段包含的任何内容。