Datagrid中有一超级链接列,绑定到数据库的新闻标是字段。如何控制它的长度在某个范围之内,比如18个字
解决方案 »
- 用过EXTJS的朋友请进,关于EXTJS未授权使用的情况,听说每使用一次EXTJS都要自动连接一次EXTJS代理商的服务器,会否被发现呢??
- css中怎么在background-image后面加本地图片的路径?
- 登录后免登录 保存在cookie中的信息,保存什么好
- 数据转换问题`?会的帮忙!
- girdview绑定datatable问题,导致进程池崩溃
- 如何让页面不刷新
- 倾本人所有分3675分求 .net 加密软件(dll混淆器)
- 确认功能 删除纪录时如何让用户确认?
- 菜鸟关于登录方面问题
- 请各位高手帮帮看看哪写的不对?
- ====大家注意身体休息一下来聊聊你们看的杂志吧====
- 100分求解,这种问题如何解决。
里面的 a 表示从第几个开始取,b 表示取多少个字符.
public static string LeftStr(string Str,int Length)
{
if (Str.Length>Length)
return Str.Substring(0,Length)+"...";
else
return Str;
}
然后这样写:<a href="ss.aspx?id="<%#funName(DataBinder.Eval())%>在后台写:
public string funName(object obj)
{
string s = obj.ToString();
if(s.length > 18)
{
s = s.subString(0,18)+"...";
}
else
{
s = s.subString(0,s.Length)+"...";
}
return s;
}
{
if(str.Length > length)
return str = str.Substring(0,length) + "...";
return str;
}在绑定数据处加入<%# subString( DataBinder.Eval(Container.DataItem,"title").ToString(),18) %>,长度可自己控制
你说的将datagrid的列设置成固定宽度只是控制了列,但是如果新闻的标题很长,他还是会折成2行或更多行显示。我的意思只是想将标题取成要求的长度以适应datagrid的列宽。
我用的Datagrid中的超级链接列。不是通过模板来实现的。所以我加不了DataBinder.Eval(Container.DataItem,"title")这句啊。如果用你那种方式(模板列来实现),我又不会加超级链接,因为新闻的标题要求点击弹出具体新闻内容页面。
假设你那列位于第二列
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if(e.Item.Cells[1].Text.Length>18)
{
e.Item.Cells[1].Text=e.Item.Cells[1].Text.Substring(1,18);
}
}
我试了一下,没有通过哈。
把你的ItemDataBind代码贴出来看看
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if(e.Item.Cells[1].Text.Length>18)
{
e.Item.Cells[1].Text=e.Item.Cells[1].Text.Substring(1,18);
}
}
}
DataTextField="title" ></asp:HyperLinkColumn>
你这种方式也不对啊。