我正在尝试调用一个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)
// }
}
答案 0 :(得分:1)
你可以在div之后立即执行它,如果元素有某种方式来解决它,比如和id或css类。使div成为服务器控件将为集合中的每个项目生成唯一的id。
<ItemTemplate>
<div runat="server" id="dummy">
<%# Eval("ColorCode") %>
</div>
<script> invertColor('<% =dummy.ClientID %>', '<%# Eval("ColorCode") %>'); </script>
</ItemTemplate>
这里我将第一个参数更改为字符串而不是对象。在invertColor
内,您可以使用id字符串来获取对您认为合适的元素的引用。
答案 1 :(得分:0)
是的,这不会起作用,因为div上没有onload事件。为什么不设置合适的CSS类?
答案 2 :(得分:0)
使用内嵌式
<ItemTemplate>
<div style= "color:<%# Eval("ColorCode") %>">
<%# Eval("ColorCode") %>
</div>
</ItemTemplate>
可能是另一种解决方案。
答案 3 :(得分:0)
您也可以尝试这样。
<asp:TemplateField HeaderText="Link">
<ItemTemplate>
<asp:HyperLink runat="server" ID="HLink"
Text='<%# Eval("FirstName").ToString() + " " + Eval("LastName").ToString()%>'
NavigateUrl='<%# "javascript:OpenPopup(" + "'" + Eval("EmpId") + "');" %> ' />
</ItemTemplate>
</asp:TemplateField>