问题描述
<asp:RepeaterID="Repeater1"runat="server"><ItemTemplate><tablecellpadding="0"cellspacing="0"border="0"width="800"align="center"><tr><td><%#DataBinder.Eval(Container.DataItem,"LogContent")%></td></tr></table></ItemTemplate></asp:Repeater>在Repeater控件中怎么获取帮定<%#DataBinder.Eval(Container.DataItem,"LogContent")%>值的长度,判断如果值的长度超过50个字符就将后面的所有字符替换为”......“最后显示出来。
解决方案
解决方案二:
.asp.cs文件中加publicstringsubstring(stringstr){if(str.length>50){str=str.SubString(0,50)+"……";}returnstr;}前台:<%#substring(Eval("LogContent").ToString())%>
解决方案三:
同意楼上
解决方案四:
同意楼上的
解决方案五:
按照字节截取更好些,参考方法publicstaticStringsplitString(Stringstr,intlen){returnsplitString(str,len,"...");}/***字符串按字节截取*@paramstr原字符*@paramlen截取长度*@paramelide省略符*/publicstaticStringsplitString(Stringstr,intlen,Stringelide){if(str==null){return"";}byte[]strByte=str.getBytes();intstrLen=strByte.length;intelideLen=(elide.trim().length()==0)?0:elide.getBytes().length;if(len>=strLen||len<1){returnstr;}if(len-elideLen>0){len=len-elideLen;}intcount=0;for(inti=0;i<len;i++){intvalue=(int)strByte[i];if(value<0){count++;}}if(count%2!=0){len=(len==1)?len+1:len-1;}returnnewString(strByte,0,len)+elide.trim();}
解决方案六:
ltlName为reapter模板列中label控件protectedvoidRepeater1_ItemDataBound(objectsender,RepeaterItemEventArgse){Labellbl=e.Item.FindControl("ltlName")asLabel;stringstr=lbl.Text;if(str.Length>50){lbl.Text=str.Substring(0,50)+"...";lbl.ToolTip=str;}}
解决方案七:
一个问题三种解决方案,都对,八仙过海各显神通啊,俺服了