Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
Asp.net 更新面板工作不正常_Asp.net - Fatal编程技术网

Asp.net 更新面板工作不正常

Asp.net 更新面板工作不正常,asp.net,Asp.net,我有一个更新面板。在该面板中,有两个控件:标签和下拉菜单 我正在使用javascript更改标签的值。下拉列表中有一个selectIndexChanged事件 每当触发此事件时,它都会清除我使用javascript设置的标签值 这里怎么了 --------编辑------------ 谢谢你的回复。我理解,由于标签不是用户输入字段,因此回发时不会保留该值。让我解释一下我的情况 有一张表格 它有一个文本框、一个图标和一个包含事件的下拉列表。所有这些项目都存在于更新面板中 点击图标将打开弹出窗口。使

我有一个更新面板。在该面板中,有两个控件:标签和下拉菜单

我正在使用javascript更改标签的值。下拉列表中有一个selectIndexChanged事件

每当触发此事件时,它都会清除我使用javascript设置的标签值

这里怎么了

--------编辑------------

谢谢你的回复。我理解,由于标签不是用户输入字段,因此回发时不会保留该值。让我解释一下我的情况

有一张表格

它有一个文本框、一个图标和一个包含事件的下拉列表。所有这些项目都存在于更新面板中

点击图标将打开弹出窗口。使用javascript从弹出窗口填充文本框值

我不希望用户编辑此文本框的值。所以我改成只读。它不保留该值

有没有办法禁用此文本框并在回发时仍保留该值?

标签不是“输入”控件,因此您设置的值不会发送到服务器,ViewState mecanism会在回发时恢复该值。这与UpdatePanel无关

编辑

如果需要持久化该值,可以使用Label+HiddenField。隐藏字段将使其进入服务器,因为它是一个“输入”控件,您可以在服务器端设置标签值

像这样的

客户端

 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 <asp:HiddenField ID="HiddenField1" runat="server" />

...

document.getElementById('<%= Label1.ClientID %>').innerHTML = 'test';"
document.getElementById('<%= HiddenField1.ClientID %>').value= 'test';"

如果您通过javascript更改标签,服务器不知道您这样做了。请记住,标签只是一个跨度元素。不是每次发回时都将整个页面发送回服务器,而是只发送表单元素。如果希望服务器了解这一点,则需要将更改放入隐藏的表单元素(例如)

嗨,克劳迪奥,谢谢你的回复。我希望此标签为只读字段。我不希望用户更改该值。该值从弹出窗口填充。我尝试将其更改为只读/禁用的文本框。它不保留该值。我该如何做到这一点?@Vivek Chandraprakash:我添加了一个可能的选项solution@VivekChandraprakash:很乐意帮忙:)你确定要将其设置为只读而不是禁用吗?如果使用javascript将textbox值设置为只读,则应保留该值。但它是残疾的,而且不会。
Label1.Text = HiddenField1.Value