Как вызвать функцию javascript в шаблоне элемента при использовании gridview - PullRequest
1 голос
/ 28 июля 2010

Я пытаюсь вызвать функцию JavaScript, которая установит передний и задний цвет элемента управления при загрузке элемента управления

Но эта функция не поднимается.

<ItemTemplate>
      <div onload= "invertColor(this,'<%# Eval("ColorCode") %>')">
           <%# Eval("ColorCode") %>
      </div>
</ItemTemplate>

Вот мой JavaScript

    function invertColor(sender, backColor) {
        alert('hi');
//        alert(backColor.toString());
//        if (backColor != '') {
//        
//            sender.css('background-color', backColor);
//            backColor= backColor.substr(1, 6);
//            foreColor = numberToHex(255 - parseInt(backColor.substr(0, 2), 16))
//            + numberToHex(255 - parseInt(backColor.substr(2, 2), 16))
//            + numberToHex(255 - parseInt(backColor.substr(4, 2), 16));
//            sender.css('color', "#"+foreColor)
//        }
    }

Ответы [ 4 ]

1 голос
/ 28 июля 2010

вы можете сделать это сразу после div, если у элемента есть какой-то способ адресации, например, и id или класс css.сделав div серверным элементом управления, вы получите уникальный идентификатор для каждого элемента в коллекции.

<ItemTemplate> 
      <div runat="server" id="dummy"> 
           <%# Eval("ColorCode") %> 
      </div> 
    <script> invertColor('<% =dummy.ClientID %>', '<%# Eval("ColorCode") %>'); </script>
</ItemTemplate> 

здесь я изменил первый параметр на строку вместо объекта.внутри invertColor вы можете использовать строку идентификатора, чтобы получить ссылку на элемент, как считаете нужным.

0 голосов
/ 14 июля 2014

Вы также можете попробовать вот так.

<asp:TemplateField HeaderText="Link"> 
 <ItemTemplate> 
    <asp:HyperLink runat="server" ID="HLink" 
        Text='<%# Eval("FirstName").ToString() + " " + Eval("LastName").ToString()%>' 
        NavigateUrl='<%# "javascript:OpenPopup(" + "&#39;" + Eval("EmpId") + "&#39;);" %> ' />
 </ItemTemplate> 
</asp:TemplateField>
0 голосов
/ 28 июля 2010

Использование встроенного стиля

<ItemTemplate> 
  <div style= "color:<%# Eval("ColorCode") %>"> 
       <%# Eval("ColorCode") %> 
  </div> 
</ItemTemplate> 

может быть альтернативным решением.

0 голосов
/ 28 июля 2010

Да, это не сработает, потому что в div нет события onload. Почему бы просто не установить соответствующий класс CSS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...