一:<%# Convert.ToString(DataBinder.Eval(Container.DataItem, "Title").Length>10?Convert.ToString(DataBinder.Eval(Container.DataItem, "Title")):DataBinder.Eval(Container.DataItem,"Title")) %>二:
<%#
if(Convert.ToString(DataBinder.Eval(Container.DataItem, "Title")).Length)>10)
{
Convert.ToString(DataBinder.Eval(Container.DataItem, "Title").SubString(0,10)
}
else
{
DataBinder.Eval(Container.DataItem,"Title");
}
%>需要实现的功能,如果title的长度大于10,那么就取前10个字。
用的控件是repeater!可是现在有错!!一:错误:“object”并不包含对“Length”的定义
二的错误:CS1525: 无效的表达式项“if”请问这个功能该如何实现,谢谢!
解决方案 »
- 如何在asp.net应用程序中实现对另一个服务器的请求?
- 关于access数据库移植到sql2000数据库的问题
- 新人求教 刷新页面为什么会重复提交数据
- .net gridview
- 注册表中 打印设置的 横向、纵向怎么设置
- 请问nhibernate联合主键该如何处理?
- 急急急!!! 如何生成的excel 中包含多个sheet
- 返回一个DataReader之后怎么使用?
- 怎樣使edit時禁止datagrid的分頁頁數選擇
- 小声地问:aspx页面从一个目录拷贝到另外一个目录是不是就不可用?
- 一个很大的图片怎么把他分解?让其一块快显示出来??
- dropdownlist数据绑定问题!!怎样改变默认值?
后台处理了显示也行。
<%
iif(len(DataBinder.Eval(Container.DataItem, "Title"))>10,left(DataBinder.Eval(Container.DataItem, "Title"),10),DataBinder.Eval(Container.DataItem, "Title"))
%>
<ItemTemplate>
<asp:Label runat="server" Text='<%# GetValue(((DataRowView)Container.DataItem)["menu_desc"].ToString()) %>' ID="Label2">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
protected string GetValue(string menudesc)
{
if(menudesc.Length>47)
{
menudesc = menudesc.Remove(47,menudesc.Length-47)+"...";
} return menudesc;
}
你的方法我试过了,错误类型是::“object”并不包含对“Length”的定义!
如果在后台,因为用的是repeater控件,如果要取到title的值,就必须单独把title经过substring之后在用repeater绑定,但是不知道怎么绑定!
DataSet ds=s.GetGrade();
string title=ds.Tables[0].Rows[0].ItemArray[1].ToString();
if(title.Length>10)
{
string t=title.Substring(0,20);//得到要显示的标题
}
grade.DataSource=ds.Tables[0].DefaultView;//怎样绑定t呢?
grade.DataBind();
这个地方不知道怎么实现,希望指点一二!
你的方法,第一是:无效的表达式项“if”错误
第二,left 方法取出的时最左边的字符,所以就出现它把一个汉字就判断成一个字符,那么对于英语他也同样要截取,那么就不是我想要的结果!!
如:title title
你好你好你好你好 你好你好你好
wwwwwwwwwwwwwww wwwwww
两个效果一比较你就可以看得出来,left的用法是不对的!
string title=ds.Tables[0].Rows[0]["Field1"].ToString();
if(title.Length>10)
{
string t=title.Substring(0,10);//得到要显示的标题
ds.Tables[0].Rows[0]["Field1"] = t;
}
grade.DataSource=ds.Tables[0].DefaultView;
grade.DataBind();
你的方法是正确的,但是取出来的是字符,而不是字,有点遗憾!不过还是谢谢你!