日期:2014-05-18  浏览次数:20443 次

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") %>