DataGrid的超级链接列的Text如何截取指定字符串? DataGrid的超级链接列如何通过格式化字符串来截取指定个数的字符串?谢谢各位.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 up~~~up!!!另外在问一下在哪里可以查看我还有多少积分? 对,我要的就是暗暗暗暗暗暗暗暗暗暗变成暗暗暗暗....datagrid的超连接列不是有一个格式化字符串吗?怎么使用"格式化字符串"来实现上面的效果? 超级链接列好像不能截取...<%# Convert.ToString(Eval("name_pro")).Length > 8 ? Convert.ToString(Eval("name_pro")).Substring(0,8) : Eval("name_pro")%> 截字符串啊.....public string getStr(string src,int len){ string retstr=src; if(src.length>len) { ret=src.substring(0,len)+"..."; } return retstr;} 那用超连接列传过去的值用Request.QueryString[""]接收一下然后再用SubString()方法截取一下吧 你写一个公用函数,在HTML中引用它就行了http://www.aspnet168.com.cn/ (Eval("----").Tostring().Length > 8)?(Eval("----").Tostring().SubString(0,8)+"..."):Eval("----")取前面8个字符显示 上边的兄弟们都已经解决了,呵呵。可以在数据库中提取的时候就截取。供楼主参考:数据库与句为: "select [字段1,字段2,(case when len(超级链接列的字段)>14 then left(超级链接列的字段,14)+'...' else 超级链接列的字段 end) as 超级链接列的字段 from 表 where [查询条件] order by [排列顺序]"; 14就是字段的长度,当然是可以改的,呵呵。如果不够14个字就会全部显示。 因为我从数据库中取记录是共用的一个方法,所以不想在select语句中截取,这样会影响其他地方的调用.我用的是超级链接列,不是模版列.<asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="autoId" DataNavigateUrlFormatString="morenew.aspx?id={0}" DataTextField="newsTitle" DataTextFormatString="Eval({0}).Tostring().Length > 28)?(Eval({0}).Tostring().SubString(0,8)+"...")%&"> <ItemStyle CssClass="dx"></ItemStyle> </asp:HyperLinkColumn>在这里该怎么写?上面这样好象不行的. 试试我的,用css.listover50{ width:50px; text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left: 5px;}*.cs=-------- protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink link = (HyperLink)e.Row.Cells[*].Controls[0]; e.Row.Cells[*].Text = "<div class=\"listover50\"><a href='" + link.NavigateUrl + "'>" + link.Text + "</a></div>"; } } (Eval("----").Tostring().Length > 8)?(Eval("----").Tostring().SubString(0,8)+"..."):Eval("----")这个怎么用?可以写下具体代码吗?我是这样写的,结果出错了DataBinder.Eval(Container, "DataItem.newsTitle", "(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."):Eval({0})")======报错:编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1010: 常数中有换行符源错误: 行 119:<asp:TemplateColumn>行 120:<ItemTemplate>行 121:<asp:HyperLink id=HyperLink1 runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.newsTitle","(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."): Eval({0})") %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>行 122:</ItemTemplate>行 123:</asp:TemplateColumn> 结贴了我换成了模板列,里面放了一个hyperlink.下面是我写的(受了各位的启发,cutStr25()是我自己写的函数)<asp:HyperLink id=HyperLink1 runat="server" Width="300px" Text='<%# cutStr25(DataBinder.Eval(Container, "DataItem.newsTitle").ToString()) %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>没办法,我就10分,不知道该怎么给,少了各位可不要见怪啊~~ 麻烦再请教一正则! 一个简单的正则问题 一个困扰了我二周的问题,谢谢大家了.... 请问如何控制显示字数? 菜鸟请教大虾:为什么我的aspx页面所有的普通windows通用控件在IE都无法显示? .net可以编写IIS ISAP筛选器吗? 同一个ASP页面不同函数之间怎么传值? 访问 http://18280.vhost.cncbiz.com/WebNewsService_2/ManageNewsService.asmx?wsdl 网址为何提示下载文件? 关于TextBox的重写 大神们来帮帮我,小弟感激不尽。。 失眠。精神折磨。 关于静态变量的疑问
暗暗暗暗暗暗暗暗暗暗
变成
暗暗暗暗....
datagrid的超连接列不是有一个格式化字符串吗?怎么使用"格式化字符串"来实现上面的效果?
<%# Convert.ToString(Eval("name_pro")).Length > 8 ? Convert.ToString(Eval("name_pro")).Substring(0,8) : Eval("name_pro")%>
public string getStr(string src,int len)
{
string retstr=src;
if(src.length>len)
{
ret=src.substring(0,len)+"...";
}
return retstr;}
然后再用SubString()方法截取一下吧
http://www.aspnet168.com.cn/
Eval("----")取前面8个字符显示
供楼主参考:
数据库与句为:
"select [字段1,字段2,(case when len(超级链接列的字段)>14 then left(超级链接列的字段,14)+'...' else 超级链接列的字段 end) as 超级链接列的字段 from 表 where [查询条件] order by [排列顺序]";
14就是字段的长度,当然是可以改的,呵呵。如果不够14个字就会全部显示。
我用的是超级链接列,不是模版列.
<asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="autoId" DataNavigateUrlFormatString="morenew.aspx?id={0}"
DataTextField="newsTitle" DataTextFormatString="Eval({0}).Tostring().Length > 28)?(Eval({0}).Tostring().SubString(0,8)+"...")%&">
<ItemStyle CssClass="dx"></ItemStyle>
</asp:HyperLinkColumn>
在这里该怎么写?上面这样好象不行的.
.listover50
{
width:50px;
text-align:left;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
padding-left: 5px;
}
*.cs
=--------
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink link = (HyperLink)e.Row.Cells[*].Controls[0];
e.Row.Cells[*].Text = "<div class=\"listover50\"><a href='" + link.NavigateUrl + "'>" + link.Text + "</a></div>";
}
}
Eval("----")这个怎么用?可以写下具体代码吗?我是这样写的,结果出错了
DataBinder.Eval(Container, "DataItem.newsTitle", "(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."):
Eval({0})")
======
报错:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1010: 常数中有换行符源错误: 行 119:<asp:TemplateColumn>
行 120:<ItemTemplate>
行 121:<asp:HyperLink id=HyperLink1 runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.newsTitle","(Eval({0}).Tostring().Length>25)?(Eval({0}).Tostring().SubString(0,25)+"..."): Eval({0})") %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>
行 122:</ItemTemplate>
行 123:</asp:TemplateColumn>
<asp:HyperLink id=HyperLink1 runat="server" Width="300px" Text='<%# cutStr25(DataBinder.Eval(Container, "DataItem.newsTitle").ToString()) %>' NavigateUrl='<%# DataBinder.Eval(Container,"DataItem.autoId","morenew.aspx?id={0}") %>'></asp:HyperLink>
没办法,我就10分,不知道该怎么给,少了各位可不要见怪啊~~