2015-01-28 3 views
0

Мой вопрос довольно прост, у меня есть сайт, разработанный в Asp.Net. Я не могу передать параметр с сервера (файл aspx) клиенту (файл javascript).Как передать параметры из Aspx в Javascript

Допустим, у меня есть кнопка asp: Button, и когда происходит событие OnClientClick, я хочу вызвать функцию javascript с параметром с сервера.

Пусть упростить пример, и позволяет сказать, что это мой веб-страница:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <form id="form" runat="server"> 

     <div runat="server" id="divID" >div text here...</div> 
     <br /> 

     <asp:Button runat="server" text="click1" 
      OnClientClick='<%= "alert(" + this.divID.ClientID + "); return false;" %>' 
      /> 

     <asp:Button runat="server" text="click2" 
      OnClientClick="alert('<%= this.divID.ClientID %>'); return false;" 
      /> 

    </form> 
</body> 
</html> 

Первая кнопка сгенерировано на стороне клиента ошибку.
Вторая кнопка предупреждает строку «<% = this.divID.ClientID%>», а не фактическое значение.

Что мне не хватает ???

+0

Вместо использования этого.div.ClientId попробуйте этот <% = div.ClientId%> в качестве параметра – Prabhat

+0

возможный дубликат [параметра передачи от aspx к проблеме javascript] (http://stackoverflow.com/ вопросы/7047191/ближний параметр-из-ASPX к Javascript-выпуск) –

ответ

0

ОК, поэтому я нашел решение, Прежде всего проблема в том, что не все атрибуты поддержки на стороне сервера (<% =%> или <% #%>). А атрибут OnClientClick их не поддерживает. Однако есть работа вокруг.

  1. Добавить Button \ ImageButton ID и запустить на нем DataBind() на стороне сервера.
  2. Использование связывания данных теги <% #%>

Решение будет:

ASPX код:

<div runat="server" id="divID" >div text here...</div> 

<asp:Button ID="btn1" runat="server" text="click1" 
OnClientClick='<%# "alert(" + this.divID.ClientID + "); return false;" %> '/> 

CS код:

protected void Page_Load(object sender, EventArgs e) 
{ 
    btn1.DataBind(); 
} 

теперь после запуска DataBind() для этого элемента можно использовать связывание данных на стороне сервера g для передачи параметров

0

Создайте свой код ClientClick в серверном коде.

(BTW - у вас нет удостоверения личности на кнопках ...)

В Page_Load, можно поставить:

btn1.OnClientClick="alert('" + this.divID.ClientID + "'); return false;"; 
0

всегда можно было установить скрытое поле формы со значением на на стороне сервера. Затем вы можете просто указать это скрытое поле в javascript. Мне легче сделать это так, как вступить в беспорядок с ASP.NET.

Смежные вопросы