Asp.net 更新面板工作不正常
我有一个更新面板。在该面板中,有两个控件:标签和下拉菜单 我正在使用javascript更改标签的值。下拉列表中有一个selectIndexChanged事件 每当触发此事件时,它都会清除我使用javascript设置的标签值 这里怎么了 --------编辑------------ 谢谢你的回复。我理解,由于标签不是用户输入字段,因此回发时不会保留该值。让我解释一下我的情况 有一张表格 它有一个文本框、一个图标和一个包含事件的下拉列表。所有这些项目都存在于更新面板中 点击图标将打开弹出窗口。使用javascript从弹出窗口填充文本框值 我不希望用户编辑此文本框的值。所以我改成只读。它不保留该值 有没有办法禁用此文本框并在回发时仍保留该值?标签不是“输入”控件,因此您设置的值不会发送到服务器,ViewState mecanism会在回发时恢复该值。这与UpdatePanel无关 编辑 如果需要持久化该值,可以使用Label+HiddenField。隐藏字段将使其进入服务器,因为它是一个“输入”控件,您可以在服务器端设置标签值 像这样的 客户端Asp.net 更新面板工作不正常,asp.net,Asp.net,我有一个更新面板。在该面板中,有两个控件:标签和下拉菜单 我正在使用javascript更改标签的值。下拉列表中有一个selectIndexChanged事件 每当触发此事件时,它都会清除我使用javascript设置的标签值 这里怎么了 --------编辑------------ 谢谢你的回复。我理解,由于标签不是用户输入字段,因此回发时不会保留该值。让我解释一下我的情况 有一张表格 它有一个文本框、一个图标和一个包含事件的下拉列表。所有这些项目都存在于更新面板中 点击图标将打开弹出窗口。使
<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