设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

一段挺有用的小SCRIPT,TEXTBOX分行显亮

作者:佚名 出处:网络转载 时间:07-18 点击:

内容载入中...
欢迎向教程中国提供原创教程 华腾联合.中国

在老外的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">类的形式了

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口
<< 上一篇 :不要滥用ViewState
>> 下一篇 :UI设计注意点

站长学院

推荐信息