在老外的BLOG上看到一段好的JAVASCRIPT,很简单,但很实用。就是说,在asp.net 2.0中,在一个带有TEXTBOX的GRIDVIEW中,有很多行记录,当每次鼠标点选每行的文本框时,该行会加亮,而离开时(丢失焦点时),该行会还原为原来的颜色。其DEMO如下
asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="true" CellPadding="4" Font-Names="Verdana" ForeColor="#333333" GridLines="None" >
<Columns>
<asp:TemplateField HeaderText="Points">
<ItemTemplate>
<asp:TextBox onBlur="ResetColor()" onFocus="ChangeColor()" ID="txtPoint" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="companyname">
<ItemTemplate>
<asp:Label ID="companyname" runat="server" Text='<%# Eval("companyname") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="contactname">
<ItemTemplate>
<asp:Label ID="contactname" runat="server" Text='<%# Eval("contactname") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle CssClass="RowStyleBackGroundColor" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle CssClass="RowAlternateStyleBackGroundColor" />
</asp:GridView>
然后就是javascript了
<script language="javascript">
var oldRowColor;
// this function is used to reset the background color
function ResetColor()
{
var obj = window.event.srcElement;
if(obj.tagName == "INPUT" && obj.type == "text")
{
obj = obj.parentElement.parentElement;
obj.className = oldRowColor;
}
}
// this function is used to change the backgound color
function ChangeColor()
{
var obj = window.event.srcElement;
if(obj.tagName == "INPUT" && obj.type == "text")
{
obj = obj.parentElement.parentElement;
oldRowColor = obj.className;
obj.className = "HighLightRowColor";
}
}
</script>
在上面的javascript中的changecolor()方法,首先用 var obj = window.event.srcElement;将得到当前聚焦事件发生时的对象,然后判断是否是文本框,如果是文本框的话,则用新的CSS(obj.className,当然,你要先设置好CSS的两类不同形式),注意此时用obj.parentElement.parentElement;
,得出的是<tr>对象,最后就是得出如<tr class="xxxx">类的形式了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述