当前位置:编程学习 > C#/ASP.NET >>

gridview中隐藏超长字符

在gridview中有一列超长,想用....代替超长字符,并且鼠标放在当前位置显示全部字符 --------------------编程问答-------------------- <%#Eval("ID").ToString().Length>15?Eval("ID").ToString().Substring(0,15)+"...":Eval("ID")%> --------------------编程问答--------------------
引用 1 楼 huangwenquan123 的回复:
<%#Eval("ID").ToString().Length>15?Eval("ID").ToString().Substring(0,15)+"...":Eval("ID")%>

<a href='javascript:void()' title='<%#Eval("ID")%>'>
<%#Eval("ID").ToString().Length>15?Eval("ID").ToString().Substring(0,15)+"...":Eval("ID")%></a> --------------------编程问答-------------------- <%#Eval("name").ToString().Length>15?Eval("name").ToString().Substring(0,15)+"...":Eval("name")%>

 public string GetSubString(string str, int num)
        {
            return str.Length > num ? str.Substring(0, num) + "..." : str;
        }     --------------------编程问答--------------------
引用楼主 x_ch 的回复:
在gridview中有一列超长,想用....代替超长字符,并且鼠标放在当前位置显示全部字符

设置overflow不知道可以解决不 --------------------编程问答-------------------- 最好的办法是CSS样式中的text-overflow属性来实现,优点:
1省资源
2.实现简单
3.不用考虑全角半角
4.不用担心内容中含有HTML标签截取时会造成HTML标记不完整 --------------------编程问答-------------------- 学习下。。。 --------------------编程问答-------------------- 1、<%#Eval("name").ToString().Length>15?Eval("name").ToString().Substring(0,15)+"...":Eval("name")%>
2、select left(fieldname,length) as fieldnane --------------------编程问答-------------------- 最好的办法是CSS样式中的text-overflow属性来实现 
能否给个示例 --------------------编程问答--------------------
<head runat="server">
    <title>无标题页</title>
<style>
.dottest{width:100px; overflow: hidden; text-overflow: ellipsis;}
</style>
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <div class="dottest">
                        <asp:Label ID="Label1" runat="server" Text='<%#Eval("c1") %>'></asp:Label>
                    </div>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <div class="dottest">
                        <asp:Label ID="Label2" runat="server" Text='<%#Eval("c2") %>'></asp:Label>
                    </div>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    </form>
</body>
</html>

protected void Page_Load(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("c1");
    dt.Columns.Add("c2");
    dt.Rows.Add("22222222", "1111111111111111111111111111");
    dt.Rows.Add("22222222", "1111111111111111111111111111");
    dt.Rows.Add("22222222", "1111111111111111111111111111");
    dt.Rows.Add("22222222", "1111111111111111111111111111");
    GridView1.DataSource=dt;
    GridView1.DataBind();
}
--------------------编程问答--------------------

 <asp:TemplateField HeaderText="权限" SortExpression="权限">
                        <ItemTemplate>
                            <div   class= " "   title= ' <%# DataBinder.Eval(Container.DataItem, "权限")%> '   style= "overflow:hidden;text-overflow:ellipsis;white-space:nowrap;PADDING-TOP:1px;PADDING-RIGHT:1px;PADDING-LEFT:1px;PADDING-BOTTOM:1px;width:120px; "> 
                                <%# DataBinder.Eval(Container.DataItem,"权限")%>                                         
                            </div> 
                            </ItemTemplate>
                    </asp:TemplateField>


我以前解决过这个问题,上面的代码片段就是解决的方法,大概的意思是:你在template中放div,div设置title,title的作用就是当你把鼠标放上去他就会显示内容,然后那个style是为了让显示的内容多了就呈现为“...”,以上。 --------------------编程问答-------------------- 10L不错!~ --------------------编程问答-------------------- 思路10楼已经给出,我们也是这样做的,
前面有几位是截断字符的做法不可取,因为那些内容有可能对用户来说是重要的 --------------------编程问答-------------------- <a href=""#" style="text-decoration:none;" title='Eval("name")'>#Eval("name").ToString().Length>15?Eval("name").ToString().Substring(0,15)+"...":Eval("name")%></a> --------------------编程问答-------------------- 帮顶!!!!!!证明存在 --------------------编程问答--------------------
<asp:TemplateColumn HeaderText="备注">
<ItemTemplate>
<A title='<%# DataBinder.Eval(Container.DataItem,"VIS_VISTCONTENT") %>' href="#">
<%# CutStr(DataBinder.Eval(Container.DataItem,"VIS_VISTCONTENT"),"..",5) %>
</A>
</ItemTemplate>
</asp:TemplateColumn>
--------------------编程问答-------------------- 请给我分用,谢谢 --------------------编程问答-------------------- 楼主给我加分啊 --------------------编程问答--------------------
引用 1 楼 huangwenquan123 的回复:
<%#Eval("ID").ToString().Length>15?Eval("ID").ToString().Substring(0,15)+"...":Eval("ID")%>



这个 --------------------编程问答--------------------
td{border:1px solid #9fc5d8;padding:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px; height:22px;}
--------------------编程问答--------------------

<a href="#" style="text-decoration:none;" title='<%# Eval("name")%>'><%# Eval("name").ToString().Length>15?Eval("name").ToString().Substring(0,15)+"...":Eval("name")%></a>

在GridView中增加一个模板列 给这个把这段Code粘进去就 --------------------编程问答-------------------- <%#Eval("ID").ToString().Length>15?Eval("ID").ToString().Substring(0,15)+"...":Eval("ID")%> 您还不结贴?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,