zoukankan      html  css  js  c++  java
  • gridView 多余字符显示省略号...

      ///<summary>
    /// 多余的字用...显示
    ///</summary>
    ///<param name="GridView1"></param>
    ///<param name="title">要缩略显示的数据列名称</param>
    ///<param name="cell">位于gridView表格的列</param>
    ///<param name="pageNum">一页中要显示的数据项个数</param>
    ///<param name="len">字符长度</param>
    public static void viewStr(GridView GridView1,DataTable dt, string title,int cell,int pageNum,int len)
    {
    if (GridView1.Rows.Count-1 > 0)
    {
    for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
    {
    DataRowView row;
    string str = "";
    if (GridView1.PageIndex == 0)
    {
    row = dt.DefaultView[i];
    str = Convert.ToString(row[title]);
    GridView1.Rows[i].Cells[cell].Text = subStr(str, len);
    }
    else
    {
    row = dt.DefaultView[i + pageNum * GridView1.PageIndex];
    str = Convert.ToString(row[title]);
    GridView1.Rows[i].Cells[cell].Text = subStr(str, len);

    }
    }
    }
    }
    private static string subStr(string str, int leng)
    {
    if (str.Length <= leng)
    {
    return str;
    }
    string sNewStr = str.Substring(0, leng);
    sNewStr = sNewStr + "...";
    return sNewStr;
    }
    GridView 长文本显示省略号
    概述:1.gridview某列文本长度超过某值显示省略号
    
               2.但鼠标移动到该列单元格时弹出div层,显示全部信息
    
    其实网上有很类似到资料,不过没有看见完整的,容易用的,所以也小费了点力气!
    
    1. gridview某列文本长度超过某值显示省略号
    
       主要说利用服务器端绑定数据时做字符串处理,过长到显示“......”省略号。同时完整信息存放在一个隐藏到div中,为2步做准备。
    
    绑定的处理代码(详细看下面到例子)
    
     view plaincopy to clipboardprint?
    <%# Eval("ProductName").ToString().Length > 10 ? Eval("ProductName").ToString().Substring(0,10) + "..." : Eval("ProductName").ToString() %>  
    <%# Eval("ProductName").ToString().Length > 10 ? Eval("ProductName").ToString().Substring(0,10) + "..." : Eval("ProductName").ToString() %>
    
     其中ProductName 是绑定到数据库表到列名。
    
    注意:必须用Eval绑定,用Bind绑定数据会出现错误,绑定数据最好用模板列,这样在模板列中插入lable标签来显示数据,因为lable标签有tootip属性,可以用它来显示完整的内容,而本身的text属性绑定带“...”的内容
    
    例子:
    
                                <asp:TemplateField HeaderText="文件编号">
                                    <HeaderTemplate>
                                        文件编号<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/PageImage/arrow_up.gif" CommandName="X" CommandArgument="FileNumber" />
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="Label1" runat="server" ToolTip='<%# Bind("FileNumber") %>' Text='<%# Bind("FileNumber") %>'></asp:Label>
                                    </ItemTemplate>
                                    <ItemStyle Width="100px" />
                                </asp:TemplateField>
    
    2.鼠标移动到该列单元格时弹出div层,显示全部信息
    
       当鼠标移动到该列到单元格时触发onmouseover事件,获取鼠标的坐标用来初始化div到坐标。用document.createElement()创建div元素,设置div到属性,最主要到是 position:absolute(这里用div分层应该能做不过对这个还不熟悉)。在onmouseout的处理方法中删除该div:view plaincopy to clipboardprint?
    document.body.removeChild(div_green);//参数是i  
    document.body.removeChild(div_green);//参数是i
    
    3 .下面说完整的例子
    
    数据库用的说nothwind  的表 Order Details Extended
    
     view plaincopy to clipboardprint?
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridviewDiv.aspx.cs" Inherits="GridviewDiv" %>  
      
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
      
    <html xmlns="http://www.w3.org/1999/xhtml" >  
    <head runat="server">  
        <title>无标题页</title>  
           
    <mce:style type="text/css"><!--   
    .menuClass   
    {   
        background-color:green;   
        filter:alpha(opacity=50);   
        margin-top:-2;   
        98px;   
        position:absolute;   
    }   
    --></mce:style><style type="text/css" mce_bogus="1">.menuClass   
    {   
        background-color:green;   
        filter:alpha(opacity=50);   
        margin-top:-2;   
        98px;   
        position:absolute;   
    }</style>  
           
    <mce:script type="text/javascript" language ="javascript"><!--   
        function ShowRec()   
       {   
            //取得鼠标坐标   
            var x,y;   
            if(!document.all)   
            {   
                x=pageX;   
                y=pageY;   
            }   
            else   
            {   
                x=document.body.scrollLeft+event.clientX; //鼠标X轴的值   
                y=document.body.scrollTop+event.clientY; //鼠标Y轴的值   
                //  alert(x+"--"+y)   
            }   
            //创建div 设定它到属性   
            var div = document.createElement("div");   
            div.style.top = y-10;   
            div.style.left = x+10;   
    //        div.style.background="green";   
            div.id="div_green";   
            div.className = "menuClass";//层样式   
               
            document.body.appendChild(div);   
            //获取存放完整信息的div   
            var ele = event.srcElement;   
            var rec = ele.nextSibling;   
               
            div.innerHTML =rec.innerHTML ;   
          
    //         var ele = event.srcElement;   
    //         var rec = ele.nextSibling;   
    //         rec.style.display = '';        
    //        if(rec)   
    //        {   
    //            if(rec.style.display ='none')   
    //            {   
    //                rec.style.display = '';   
    //            }   
    //            else   
    //            {   
    //                rec.style.display ='none';   
    //            }   
    //        }   
       }   
          
        function DropDiv()   
       {   
       //删除div   
            document.body.removeChild(div_green);//参数是i   
       }   
          
    // --></mce:script>  
    </head>  
    <body>  
        <form id="form1" runat="server">  
        <div>  
        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="OrderID,ProductID"  
                    DataSourceID="SqlDataSource1" Width="399px" AllowPaging="True">  
                    <Columns>  
                        <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" />  
                        <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" />  
                        <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" >  
                        </asp:BoundField>  
                        <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" />  
                        <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" />  
                        <asp:BoundField DataField="Discount" HeaderText="Discount" SortExpression="Discount" />  
                        <asp:BoundField DataField="ExtendedPrice" HeaderText="ExtendedPrice" ReadOnly="True"  
                            SortExpression="ExtendedPrice" />  
                           
                        <asp:TemplateField HeaderText="标题" SortExpression="ProductName">    
                             <ItemTemplate>    
                                <a onmouseout="DropDiv();" onmouseover="ShowRec();" > <%# Eval("ProductName").ToString().Length > 10 ? Eval("ProductName").ToString().Substring(0,10) + "..." : Eval("ProductName").ToString() %> </a>  
                                <div id="divRec" style="display:none" mce_style="display:none"> <%# DataBinder.Eval(Container.DataItem, "ProductName")%> </div>  
                            </ItemTemplate>    
                                <ItemStyle Width="360px" Wrap="False" />    
                        </asp:TemplateField>    
      
                    </Columns>  
                </asp:GridView>  
      
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"  
                    SelectCommand="SELECT * FROM [Order Details Extended]"></asp:SqlDataSource>  
           
        </div>  
        </form>  
    </body>  
    </html> 
  • 相关阅读:
    MySQL必知必会(数据分组,Group by和Having子句, Select子句的顺序)
    MySQL必知必会(汇总数据, 聚集函数)
    MySQL必知必会(使用函数处理数据)
    菜根谭#206
    菜根谭#205
    菜根谭#204
    菜根谭#203
    菜根谭#202
    菜根谭#201
    菜根谭#200
  • 原文地址:https://www.cnblogs.com/wifi/p/2247209.html
Copyright © 2011-2022 走看看