2015-02-11 48 views
0

我可以得到標籤值改變,當我使用下面的代碼傳ASP.NET標籤ID爲Javascript

document.getElementById('<%=lblDropdownValue.ClientID %>').innerHTML =  ddl.value; 

但我想它作爲一個參數傳遞,如下圖所示,但它不會似乎工作。

<table> 
    <tbody> 
     <tr> 
      <td> 
       <asp:DropDownList id="ddlProducts" runat="server" 
      onclick="myfunction(this,'<%=lblDropdownValue.ClientID %> "')"> 

       <asp:ListItem Selected="True" Value="-1"> Please Select </asp:ListItem> 
       <asp:ListItem Value="Car"> BMW </asp:ListItem> 
       <asp:ListItem Value="Music"> MP3 </asp:ListItem> 

      </asp:DropDownList> 

      </td> 
      <td> 
       <asp:Label Text="" id="lblDropdownValue" runat="server"/> 
      </td><td></td> 
     </tr> 

    </tbody> 

</table> 
</div> 
</form> 
<script> 
    function myfunction(ddl, lblText) 
    { 
     document.getElementById("'"+lblText+"'").innerHTML = ddl.value;   
    } 
</script> 

回答

1

在後面的代碼將這個:

public void Page_Load(...) { 

    ddlProducts.Attributes["onclick"] = "myfunction(...)"; 

} 

,並從ASPX刪除onclick

原因是您希望將onclick附加到客戶端。你現在擁有的是一個屬於服務器端的屬性,因此它不能正確地給客戶端。

+0

DziękujęWiktor的Zychla代碼 – sw2020 2015-02-11 22:56:49

0

在我後面加

protected void Page_Load(object sender, EventArgs e) 
     { 
      ddlProducts.Attributes["onclick"] = "myfunction(this,"+lblDropdownValue.ClientID +");"; 

     } 

,改變了JavaScript來

<script> 
     function myfunction(ddl, lblText) 
     {    
      lblText.innerHTML 
      = ddl.value;   
     } 
    </script>