GridView 单元格的问题 从数据库里取得的字符串,但这字符串太长了,显示到GridView里面就把单元格给称的很大。如何固定每个单元格,让它只显示固定长度的字符串? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦。忘了说明是ASP.NET里面的GridView 可以固定某列只显示固定长度的字符,多出的字符用...代替。using System;using System.Collections.Generic;using System.Text;namespace Component{ public static string GetStrlong(string str) { if (str.Length > 20) { return str.Substring(0,20) + "…"; } else { return str; } } }} <asp:GridView ID="GridView1" runat="server" Width="90%" AutoGenerateColumns="False" CssClass="news_bordall" DataKeyNames="ID" > <Columns> <asp:TemplateField HeaderText="解盘信息"> <ItemTemplate> <%# Component.GetStr.GetStrlong(Eval("RequestInfo").ToString()) %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> 1,在html里 设置每个单元格的 宽度 (项目和head) 也可以用css2,设置超过部分 用来代替就这两个方法了吧。 我个人觉得把3楼的怎样改下好点就是把后面的那个20改成17 public static string GetStrlong(string str) { if (str.Length > 20) { return str.Substring(0,17) + "…"; } else { return str; } } }对于a20aaaaaaaaaaaaaaaaab21bbbbbbbbbbbbbbbbbbc22cccccccccccccccccccd23dddddddddddddddddddd原代码做的效果是这样:a20aaaaaaaaaaaaaaaaab21bbbbbbbbbbbbbbbbb...c22ccccccccccccccccc...d23ddddddddddddddddd...我改过的代码做出来的效果是:a20aaaaaaaaaaaaaaaaab21bbbbbbbbbbbbbb...c22cccccccccccccc...d23dddddddddddddd...哪个更好我也说不清楚反正我做的系统我是用的我这方法不会超过单元格 3楼基本可以,我也遇到过这个问题,我觉得还可以加tooltip把看不到的提示出来 protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string strName = e.Row.Cells[1].Text;// if (strName.Length > 10)//判断它的长度,如果大于10就截取字符串 { e.Row.Cells[1].Text = strName.Substring(0, 10) + "..."; e.Row.Cells[1].ToolTip = strName;//ToolTip是鼠标指向的效果。 } } }看能不能帮上忙 去截串没必要。我的方法:1.DataGrid 每列都定好大小 例如:30%。2.DataGrid每列不换行 3.用样式设置显示不下的为....代码如下:我只举一列<asp:BoundColumn DataField="OperationDesc" HeaderText="备注"><HeaderStyle Width="10%"></HeaderStyle><ItemStyle Wrap="False" CssClass="showFlowOver"></ItemStyle></asp:BoundColumn>样式:showFlowOver为:.showFlowOver { overflow:hidden; text-overflow:ellipsis;} 用模板来做,编辑gridview添加模板,在模板里放textbox控件,将此控件设为多行的,这样就只固定了,试试,应该可以。 请教 ,多窗口问题 关于远程Remoting的一个小问题! [C# - WinForms] 如何让控件在非正常DPI(正常DPI=96)下不走位? 串口开发相关(是不是需要初始化一下?) C#中批量更新ORACLE记录 求一正则 How to convert string to byte[]? c# excel 复制一个sheet到一个新建的excel中!运行时代码出错求大神帮忙修改! 求DataGrid的分页显示 谁有NNuit 2.0 发我一个,立即给分! C#的一个统计分数问题,总是不正确!请大神指点... 如何定义一个表示矩形的类,可以计算矩形的面积?菜鸟求助。。。
using System;
using System.Collections.Generic;
using System.Text;namespace Component
{ public static string GetStrlong(string str)
{
if (str.Length > 20)
{
return str.Substring(0,20) + "…";
}
else
{
return str;
}
} }
} <asp:GridView ID="GridView1" runat="server" Width="90%"
AutoGenerateColumns="False" CssClass="news_bordall" DataKeyNames="ID"
>
<Columns>
<asp:TemplateField HeaderText="解盘信息">
<ItemTemplate>
<%# Component.GetStr.GetStrlong(Eval("RequestInfo").ToString()) %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
2,设置超过部分 用来代替
就这两个方法了吧。
就是把后面的那个20改成17 public static string GetStrlong(string str)
{
if (str.Length > 20)
{
return str.Substring(0,17) + "…";
}
else
{
return str;
}
} }对于
a20aaaaaaaaaaaaaaaaa
b21bbbbbbbbbbbbbbbbbb
c22ccccccccccccccccccc
d23dddddddddddddddddddd
原代码做的效果是这样:
a20aaaaaaaaaaaaaaaaa
b21bbbbbbbbbbbbbbbbb...
c22ccccccccccccccccc...
d23ddddddddddddddddd...
我改过的代码做出来的效果是:
a20aaaaaaaaaaaaaaaaa
b21bbbbbbbbbbbbbb...
c22cccccccccccccc...
d23dddddddddddddd...
哪个更好我也说不清楚
反正我做的系统我是用的我这方法
不会超过单元格
把看不到的提示出来
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string strName = e.Row.Cells[1].Text;//
if (strName.Length > 10)//判断它的长度,如果大于10就截取字符串
{
e.Row.Cells[1].Text = strName.Substring(0, 10) + "...";
e.Row.Cells[1].ToolTip = strName;//ToolTip是鼠标指向的效果。
}
} }看能不能帮上忙
我的方法:
1.DataGrid 每列都定好大小 例如:30%。
2.DataGrid每列不换行
3.用样式设置显示不下的为....
代码如下:我只举一列
<asp:BoundColumn DataField="OperationDesc" HeaderText="备注">
<HeaderStyle Width="10%"></HeaderStyle>
<ItemStyle Wrap="False" CssClass="showFlowOver"></ItemStyle>
</asp:BoundColumn>样式:showFlowOver为:
.showFlowOver {
overflow:hidden;
text-overflow:ellipsis;
}