使用lable.innerHTML在javascript中的标签集文本在回发后丢失

时间:2011-11-22 08:11:49

标签: javascript asp.net

我在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,但两者都没有用。

3 个答案:

答案 0 :(得分:8)

Lable不是表单元素。它不会发布到服务器,因此服务器永远不会知道您为其分配了什么值。它也不在ViewState中,因为它不是从服务器端分配的。

通常,您必须在隐藏字段中提交此值,并在加载控件时重新分配该值,但由于您已经可以访问新值,因此在ddlVessel中,您应该能够在控件加载时,只需将标签值指定为ddlVessel的值。

答案 1 :(得分:1)

这不是一个非常干净的解决方案,但您可以在更改标签文本时填充隐藏字段。然后在回发时检查它并更改标签文本服务器端。

答案 2 :(得分:0)

对客户端HTML进行的更改超出了ASP.NET的预览范围,除非发布了更改。对lbel的任何更改都不会被回发,因此这些更改只是暂时的。