簡體   English   中英

使用GridView時如何在項目模板中調用JavaScript函數

[英]How to call javascript function in item template when using gridview

我正在嘗試調用一個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)
//        }
    }

您可以在div之后立即執行此操作,前提是該元素具有某種尋址方式,例如id和css類。 將div設置為服務器控件將為集合中的每個項目生成唯一的ID。

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

在這里,我已經將第一個參數更改為字符串而不是對象。 invertColor內部,您可以使用id字符串獲取對該元素的引用,但是您認為合適。

您也可以這樣嘗試。

<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>

是的,那是行不通的,因為div上沒有onload事件。 為什么不只設置適當的CSS類呢?

使用內聯樣式

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

可能是替代解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM