2015-02-11 3 views
0

я могу получить значение метки, чтобы изменить, когда я использую следующий кодPassing метка ASP.NET идентификатор 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(...)"; 

} 

и удалить onclick из ASPX.

Причина этого заключается в том, что вы хотите, чтобы onclick был прикреплен на стороне клиента. Теперь у вас есть атрибут, который оценивается на стороне сервера и, следовательно, он не делает его надлежащим образом клиенту.

+0

Dziękuję Wiktor Zychla – sw2020

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> 
Смежные вопросы