GridView中如何设置每个单元格内的文字不显示完啊,比如只显示5个字,后边的用..... GridView中如何设置每个单元格内的文字不显示完啊,比如只显示5个字,后边的用..... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在绑定数据的时候substring()一下不就行了。 自己定义个GetSubString()的方法用来截取你需要的字符串,在DataGrid_ItemDataBound事件里处理绑定的字符串。 /// <summary> /// 截取字符串长度 /// </summary> /// <param name="str">需要截取的字符串</param> /// <param name="sqlitInt">截取长度</param> /// <returns></returns> protected string SplitStr(string str,int sqlitInt){ string result ; if(str.Length<=0) result = str; if(str.Length<= sqlitInt) result = str; else result = str.Substring(0,sqlitInt); return result; } # region 方法:string TransString(string, int)按字符串的实际长度截取定长字符串47 public static string TransString(string Str,int Length)48 {49 int i = 0, j = 0;50 foreach (char Char in Str)51 {52 if ((int)Char > 127)53 i += 2;54 else55 i ++;56 if (i > Length)57 {58 Str = Str.Substring(0, j) + "...";59 break;60 }61 j ++;62 }63 return Str;64 } for(int i=0;i<DataGrid.Items.Rows.Count;i++){ for(int j=0;j<DataGrid.Items.Cells.Count;j++) { if(DataGrid.Items.Rows[i].Cell[j].Text.length>5) { DataGrid.Items.Rows[i].Cell[j].Text=DataGrid.Items.Rows[i].Cell[j].Text.Substring(0,5); } }} 不需要手动截取,因为那样很难看,例如截5个字符可能会是:"一二三四五...""wwwww...""iiiii..."在非等宽字体中"w"和"i"的宽度也有差距,那么5个字符的宽度的差距就很大了,这时候同样是5个字符,但是每行宽度不一,会很难看。主流的做法是,使用CSS中的"text-overflow"属性,详细用法你可以在MSDN里查到,也可以Google获得。它能够让浏览器自行截取,而截取的依据是指定宽度而非字符数。 如果一开始你就知道这个问题是CSS可以解决的,跑去Web大版下面CSS版问,估计不出3分钟就有人告诉你答案了。但是在一个ASP.NET程序员堆里问,大家都只懂得用自己习惯的思维去思考,不懂得从美工的做事方式去思考,结果肯定走弯路。其实CSS很多属性都是贴近美工和排版人员的思维的。 我当时也考虑了另外一个样式属性word-break不过这个不起作用 自己写个字符串缩减方法. 再用在绑定命令上 <%# xxx.yyy((string)Eval("ccc"), 5, "...") %> text-overflow已经不被支持了 怎么在后台里,反编码js里用encodeURIComponent()编码过的字符串? OWC11 导出Excel栏位丢失问题 ASP.NET代码生成器 gridview 大家来瞧瞧这问题 本人.net学的不怎么样,希望各位高手教教,谢谢。 css 制作新闻提示有问题? 导入EXCEL的数据到数据库,第一行是备注行,第二行才是列名行,怎么忽略第一行,从第二行开始 !奇怪!!!!iis老是提示这样的错误!!!! easyui combobox 参数问题 关于javascript保存页面的问题 安装了ORACLE9.i之后无法创建ASP.NET项目
/// 截取字符串长度
/// </summary>
/// <param name="str">需要截取的字符串</param>
/// <param name="sqlitInt">截取长度</param>
/// <returns></returns>
protected string SplitStr(string str,int sqlitInt){
string result ; if(str.Length<=0)
result = str; if(str.Length<= sqlitInt)
result = str;
else
result = str.Substring(0,sqlitInt); return result; }
47 public static string TransString(string Str,int Length)
48 {
49 int i = 0, j = 0;
50 foreach (char Char in Str)
51 {
52 if ((int)Char > 127)
53 i += 2;
54 else
55 i ++;
56 if (i > Length)
57 {
58 Str = Str.Substring(0, j) + "...";
59 break;
60 }
61 j ++;
62 }
63 return Str;
64 }
{
for(int j=0;j<DataGrid.Items.Cells.Count;j++)
{
if(DataGrid.Items.Rows[i].Cell[j].Text.length>5)
{
DataGrid.Items.Rows[i].Cell[j].Text=DataGrid.Items.Rows[i].Cell[j].Text.Substring(0,5);
}
}
}
"一二三四五..."
"wwwww..."
"iiiii..."在非等宽字体中"w"和"i"的宽度也有差距,那么5个字符的宽度的差距就很大了,这时候同样是5个字符,但是每行宽度不一,会很难看。主流的做法是,使用CSS中的"text-overflow"属性,详细用法你可以在MSDN里查到,也可以Google获得。它能够让浏览器自行截取,而截取的依据是指定宽度而非字符数。
word-break
不过这个不起作用