我在javascript中将textof lablel设置为dropdownlist.selectedvalue。但是当我尝试在按钮点击时获取该文本时,它不可用。如何在javascript中设置该值,以便在回发后也可用。
这是我的javascript函数的代码。
function ddlVessel_OnSelectedIndexChange() {
var ddl = document.getElementById("<%=ddlVessel.ClientID %>");
var lable = document.getElementById("<%=lblSegmentNo.ClientID %>");
if (ddl.selectedIndex > 0) {
var SelectedVal = ddl.options[ddl.selectedIndex].value;
lable.innerText = SelectedVal;
return true;
}
else {
lable.innerHTML = "";
return true;
}
}
我也尝试了lable.value和lable.text,但两者都没有用。
答案 0 :(得分:8)
Lable不是表单元素。它不会发布到服务器,因此服务器永远不会知道您为其分配了什么值。它也不在ViewState中,因为它不是从服务器端分配的。
通常,您必须在隐藏字段中提交此值,并在加载控件时重新分配该值,但由于您已经可以访问新值,因此在ddlVessel
中,您应该能够在控件加载时,只需将标签值指定为ddlVessel
的值。
答案 1 :(得分:1)
这不是一个非常干净的解决方案,但您可以在更改标签文本时填充隐藏字段。然后在回发时检查它并更改标签文本服务器端。
答案 2 :(得分:0)
对客户端HTML进行的更改超出了ASP.NET的预览范围,除非发布了更改。对lbel的任何更改都不会被回发,因此这些更改只是暂时的。