chenfei.cs
//控制标题输出长度
public String showlen(string s,int length)
{
if (s == null) return "Sorry,Null.";
else
{
s=s.Trim();
if(s.Length>length)
{
s=s.Substring(0,length);
}
return s;
}
}现在我要在a.aspx调用showlen类,该如何调用?请注意不是在a.aspx.cs而是a.aspx中
我是这样调用不对
<%@ import namespace="cars" %> //导入chenfei.cs  namespace名称
<asp:DataGrid id="DataGrid1" runat="server" CellPadding="0">
<asp:TemplateColumn HeaderStyle-HorizontalAlign="center" ItemStyle-Height="22"  HeaderText="<font color=ffffff><b>标题</b></font>"  ItemStyle-Width="70">
<ItemTemplate><a href='<%# "Viewuser.aspx?userid="+DataBinder.Eval(Container.DataItem,"userid")%>' target="_blank"><%# showlen(DataBinder.Eval(Container.DataItem,"title"),18)%></a></ItemTemplate>
</asp:TemplateColumn> 
</asp:DataGrid>谢谢大家帮忙

解决方案 »

  1.   

    <% =new 类().showlen("abc",2) %>
      

  2.   

    <% =new 类().showlen("abc",2) %>好像是放在a.aspx.cs中用的,放在a.aspx中行吗?
      

  3.   

    如果你的showlen方法写在a.aspx中你那样就对了,如果写在外部的话要先实例化类后才能调用它的方法
    <%# new 类().showlen(DataBinder.Eval(Container.DataItem,"title"),18)%>
      

  4.   

    但现在情况是我写的是不对啊有人要说把showlen 定义成static,有这种说法吗?
      

  5.   

    我看,你这个类可以用一个JS文件来存放
    "><%# 也就是调用的后台,所以你还是要在后台写的
      

  6.   

    public string ConvertDis(bool boolRole,string strcode)
    {
    if (boolRole)
    {
    return strcode;
    }
    else
    {
    return "";
    }
    }
    <%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_search")),"| 浏览") %>
      

  7.   

    静态方法的话就不用实例化了,直接这样<%# 类.showlen(DataBinder.Eval(Container.DataItem,"title"),18)%>
      

  8.   

    给你举个例,比如你的类方法写在Class1.cs中,如下
    public class Class1
    {
    public Class1()
    {
    } public string showlen(string s,int length)
    {
    if (s == null) return "Sorry,Null.";
    else
    {
    s=s.Trim();
    if(s.Length>length)
    {
    s = s.Substring(0,length);
    }
    return s;
    }
    } //静态方法
    public static string showlen2(string s,int length)
    {
    if (s == null) return "Sorry,Null.";
    else
    {
    s=s.Trim();
    if(s.Length>length)
    {
    s = s.Substring(0,length);
    }
    return s;
    }
    }
    }
    然后在a.aspx中调用
    在页面最开始引入名字空间
    <%@ import namespace="MyClass" %>页面中调用
    <%# new Class1().showlen(DataBinder.Eval(Container.DataItem,"title").ToString(),18)%>调用静态方法
    <%# Class1.showlen2(DataBinder.Eval(Container.DataItem,"title").ToString(),18)%>
      

  9.   

    感谢各位帮忙,不知道哪里来的临感,总到问题关键所在public string showlen(string s,int length)我这里的s是string 
    <%# DataBinder.Eval(Container.DataItem,"title")%> 是object型,所以不好转换