原代码如下:
<asp:DataList ID="datresult" runat="server" Width="636px" OnItemCreated="datresult_ItemCreated" OnItemDataBound="datresult_ItemDataBound">
<ItemTemplate>
<table>
<tr>
<td style="width: 186px; height: 17px;">
</td>
<td style="width: 557px; height: 17px;">
<asp:Label ID="lbltitle" runat="server" Width="533px"><%#Eval("CON_TITLE")%></asp:Label></td>
</tr>
<tr>
<td style="width: 186px; height: 6px;">
</td>
<td style="width: 557px; height: 6px;">
<asp:Label ID="lbldesc" runat="server" Width="535px"><%#Eval("CON_DESC")%></asp:Label></td>
</tr>
<tr>
<td colspan="2" style="height: 2px">
<hr />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
我想通过Eval函数绑定数据,但我想对其中之一的数据进行截断字符串的操作,我的操作语句如下:
protected void datresult_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.FindControl("lbldesc") as Label != null)
{
if ((e.Item.FindControl("lbldesc") as Label).Text.Length > 30)
{
(e.Item.FindControl("lbldesc") as Label).ToolTip = (e.Item.FindControl("lbldesc") as Label).Text;
(e.Item.FindControl("lbldesc") as Label).Text = (e.Item.FindControl("lbldesc") as Label).Text.Substring(0, 30) + "...";
}
}
}
可是根本不起任何作用,请教下如何操作,我的语句对的吗?
还有就是如何实现针对有条件模糊查询的关键字查询,我要让查询结果类似于baidu搜索那样,将查询的匹配词条以红色显示,急着等答案,谢谢大家了
<asp:DataList ID="datresult" runat="server" Width="636px" OnItemCreated="datresult_ItemCreated" OnItemDataBound="datresult_ItemDataBound">
<ItemTemplate>
<table>
<tr>
<td style="width: 186px; height: 17px;">
</td>
<td style="width: 557px; height: 17px;">
<asp:Label ID="lbltitle" runat="server" Width="533px"><%#Eval("CON_TITLE")%></asp:Label></td>
</tr>
<tr>
<td style="width: 186px; height: 6px;">
</td>
<td style="width: 557px; height: 6px;">
<asp:Label ID="lbldesc" runat="server" Width="535px"><%#Eval("CON_DESC")%></asp:Label></td>
</tr>
<tr>
<td colspan="2" style="height: 2px">
<hr />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
我想通过Eval函数绑定数据,但我想对其中之一的数据进行截断字符串的操作,我的操作语句如下:
protected void datresult_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.FindControl("lbldesc") as Label != null)
{
if ((e.Item.FindControl("lbldesc") as Label).Text.Length > 30)
{
(e.Item.FindControl("lbldesc") as Label).ToolTip = (e.Item.FindControl("lbldesc") as Label).Text;
(e.Item.FindControl("lbldesc") as Label).Text = (e.Item.FindControl("lbldesc") as Label).Text.Substring(0, 30) + "...";
}
}
}
可是根本不起任何作用,请教下如何操作,我的语句对的吗?
还有就是如何实现针对有条件模糊查询的关键字查询,我要让查询结果类似于baidu搜索那样,将查询的匹配词条以红色显示,急着等答案,谢谢大家了
解决方案 »
- IEnumerable<> ,IQueryable<>, ObjectSet<>, ITable<>区别
- 100分啦。。。ViewState怎么用
- 关于很多网站的新闻生成html页面问题?
- 在使用传参设置Web.config后,Cuteditor编辑器报错...
- 跪求一SQL储存过程(没分了...请帮帮忙啊!)
- DataGrid中Check选中之后翻页数据看起来没有丢失,但是提交时只提交当前页面选中的数据
- 从objectdatasource中得到datatable
- 打开datagrid编辑网页时,或者新增保存时运行速度很慢
- vb.net开发的网站与C#开发的网站合并的问题(Session的传递) 在线等
- 各位帮忙~谢谢
- 实现框架条能自动隐藏啊
- 对面向对象方式编程的一点疑问
e.Item.Cells[0].Text = "·";
e.Item.Cells[1].ToolTip = e.Item.Cells[1].Text;
e.Item.Cells[1].Text="<a href=ShowNews.aspx?newsid=" + e.Item.Cells[2].Text + ">" + e.Item.Cells[1].Text.Length > 18 ? e.Item.Cells[1].Text.Substring(0,18) + "...":e.Item.Cells[1].Text) + "</a>";
CS里
函数名(string str)
{
if(str.Length>10)
return str.subString(0,18);
else
return str;}
还有纠正下3楼的函数既然有返回值旧不能用void了
{
//if (e.Item.FindControl("lbldesc") as Label != null)
//{
// if ((e.Item.FindControl("lbldesc") as Label).Text.Length > 30)
// {
// (e.Item.FindControl("lbldesc") as Label).ToolTip = (e.Item.FindControl("lbldesc") as Label).Text;
// (e.Item.FindControl("lbldesc") as Label).Text = (e.Item.FindControl("lbldesc") as Label).Text.Substring(0, 30) + "...";
// }
//}
//Response.Write((e.Item.FindControl("lbldesc") as Label).Text.Length);
e.Item.Cells[0].Text = "·";
e.Item.Cells[1].ToolTip = e.Item.Cells[1].Text;
e.Item.Cells[1].Text="<a href=ShowNews.aspx?newsid=" + e.Item.Cells[2].Text + ">" + e.Item.Cells[1].Text.Length > 18 ? e.Item.Cells[1].Text.Substring(0,18) + "...":e.Item.Cells[1].Text + "</a>";
}结果报错
编译器错误信息: CS0117: “System.Web.UI.WebControls.DataListItem”并不包含“Cells”的定义
public string SubStr(string str)
{
if (str.Length > 10)
return str.Substring(0, 30);
else
return str;
}
前台调用:
<asp:Label ID="lbldesc" runat="server" Width="535px"><%#Substr(Eval("CON_DESC")).ToString%></asp:Label>结果报错:
编译器错误信息: CS0103: 当前上下文中不存在名称“Substr”
这个我倒想试试好象可以将后台代码直接写前台是否可以成功? 改如何写? 请指教
原来这样,改了后调试仍然还有问题:编译器错误信息: CS1502: 与“cms_selresult.SubStr(string)”最匹配的重载方法具有一些无效参数Eval("CON_DESC") 查询返回了一个类似DataRow的集合无法强转为String
问题解决了,非常谢谢,还有个疑问我如何指定截断数据的tooltip
对了顺便问一下,如果我要让查询的关键字结果为红色类似于baidu搜索一样该怎样做?
试试看`
<ItemTemplate>
<table>
<tr>
<td style="width: 186px; height: 17px;">
</td>
<td style="width: 557px; height: 17px;">
<asp:Label ID="lbltitle" runat="server" Width="533px" ToolTip='<%# Eval("CON_TITLE") %>' ForeColor="Black"><%# Eval("CON_TITLE") %></asp:Label></td>
</tr>
<tr>
<td style="width: 186px; height: 6px;">
</td>
<td style="width: 557px; height: 6px;">
<asp:Label ID="lbldesc" runat="server" Width="535px" ToolTip='<%# DataBinder.Eval(Container,"DataItem.CON_DESC") %>' ForeColor="#404040"><%# SubStr(DataBinder.Eval(Container,"DataItem.CON_DESC").ToString()) %></asp:Label></td>
</tr>
<tr>
<td colspan="2" style="height: 2px">
<hr />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
其中lbltitle是标题
lbldesc是内容刚才的lbldesc的tooltip出不来
lbldesc 的不可以是吧?
<%# Eval("CON_DESC") %>
这样写呢?
(该部分用Gridview VS2005显示以示区别)
内容标题 内容描述
分公司简介 222 30
NHDR 2005 Launched The developmental goal set by ... 123 (原代码输出结果)
分公司简介
222 --------------------------------------------------------------------------------
NHDR 2005 Launched
The developmental goal set by ... --------------------------------------------------------------------------------
.......不能截图出来看不到效果
lbldesc 的不可以是吧?
<%# Eval("CON_DESC") %>
这样写呢?
public string 函数名(string str)
{
//例如查询 张三
str.Respace("张三","<font color =red>张三</font>");
return str;
}aspx里
<%# 函数名(DataBinder.Eval(Container,"DataItem.CON_DESC").ToString()) %>
public string SubStr(string str)
{
string key = txtoption.Text;
string keyadd = "<font color=red>" + key + "</font>";
//输出key,发现没问题,也非获取不到
Response.Write(key);
str.Replace(key, keyadd);
if (str.Length > 30)
return str.Substring(0, 30)+"...";
else
return str;
}
{
string key = txtoption.Text;
string keyadd = "<font color=red>" + key + "</font>";
//输出key,发现没问题,也非获取不到
Response.Write(key);
if (str.Length > 30)
str=str.Substring(0, 30)+"..."; return str.Replace(key, keyadd); }
这样你才能获得替换的字符串
在str.Replace(key, keyadd);前面加个赋值
即:
str=str.Replace(key, keyadd);
就ok了
谢谢了
现在,给分结贴,呵呵