2011-11-22 64 views
4

我已经在javascript中设置textoflablel为dropdownlist.selectedvalue。但是,当我尝试获取按钮上的文本时,它不可用。如何在javascript中设置该值,以便在回发后可以使用该值。在javascript中使用lable.innerHTML设置的标签文本在发回后丢失

这是我的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但两者都没有工作。

回答

8

Lable不是表单元素。它不会被发布到服务器,所以服务器永远不会知道您分配了什么值。它也不在ViewState中可用,因为它没有从服务器端分配。

通常情况下,您必须在隐藏字段中提交此值,并在加载控件时重新指定该值,但由于您已有权访问新值,因此您应该能够简单地将该值当控件被加载时,标签值为ddlVessel

0

对客户端的HTML所做的更改不在ASP.NET的预览中,除非发布更改。对lbel的任何更改都不会被回传,因此这些更改只是暂时的。

1

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

相关问题