Repeater字符串截取固定长度的问题(C#)
index.aspx文件
- HTML code
<asp:Repeater ID="RepeaterTuijian" runat="server"> <ItemTemplate> <div id="b21"> <div id="b22"><img src="images2/images/<%# Eval("photo") %>" alt="<%# Eval("bookname") %>" width="60" /></div> <p class="b23"><%# Eval("bookname") %></p> <p class="b24">作者:<%# Eval("author") %> </p> <p class="b24">出版社:<%# Eval("publisher") %></p> <p class="b24">出版时间:<%# Eval("cbshijian") %></p> <p class="b24">定价:¥<%# Eval("price") %> 当当价:¥<%# Eval("xiaoshoujia") %> </p> <p class="b25"><%# JieQu(Eval("tuijian"),30) %></p> </div> </ItemTemplate> </asp:Repeater> index.aspx.cs文件
- C# code
protected void Page_Load(object sender, EventArgs e) { string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("mdb\\jiuzhou.mdb"); OleDbConnection conn = new OleDbConnection(connStr); OleDbCommand cmd = new OleDbCommand("SELECT TOP 2 * FROM book WHERE (((lanmu)='主编推荐')) ORDER BY bookID DESC", conn); conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); RepeaterTuijian.DataSource = dr; RepeaterTuijian.DataBind(); conn.Close(); } public string JieQu(string inputString, string Len) { int tempLen = 0; string tempString = ""; int len = Convert.ToInt32(Len); if (inputString.Length > len) { tempString = inputString.Substring(0, len)+"…";//截获前len个字符并加上… } else { tempString = inputString; } return tempString;以上代码运行出现*编译器错误信息: CS1502: 与“index.JieQu(string, string)”最匹配的重载方法具有一些无效参数
我是要在<p class="b25"><%# JieQu(Eval("tuijian"),30) %></p> 中的<P>标签输出30个以内字符,如果Eval("tuijian")超过30字符那就截取前30个并在后面加上…省略号。请教高手帮忙看看,十分感谢!
[解决办法]
public string JieQu(string inputString, string Len)
你这个方法需要两个string的参数
<%# JieQu(Eval("tuijian"),30) %> 而你这个30是int的 所以 编译器错误信息: CS1502: 与“index.JieQu(string, string)”最匹配的重载方法具有一些无效参数
改成这样
<%# JieQu(Eval("tuijian"),"30") %>
[解决办法]
<%# JieQu(Eval("tuijian").ToString(),"30") %>