用DataList显示产品表信息:<asp:DataList ID="DataList1" Runat="Server">
   <ItemTemplate>
     产品名称:<%# DataBinder.Eval(Container.DataItem, "ProName" )%>
     产品分类:<%# DataBinder.Eval(Container.DataItem, "SortID" )%>
   </ItemTemplate> 
</asp:DataList>问题一:其中SortID字段表达的是分类ID字段,在数据库中存入的是产品分类表的int值,目的想显示所属分类中文名称,后台文件应该如何处理。问题二:如果全部采用标签显示,后台文件又应该如何处理:
<asp:DataList ID="DataList1" Runat="Server">
   <ItemTemplate>
      产品名称:<asp:Label ID="ProName" runat="server">
      产品分类:<asp:Label ID="SortName" runat="server">
   </ItemTemplate> 
</asp:DataList>后台部分代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GetResult();
        }
    }
    public void GetResult()
    {
        ProBll pb = new ProBll();   //BLL
        DataSet ds = pb.ProList();  //查询产品表方法
        DataList1.DataSource = ds.Tables[0].DefaultView;
        DataList1.DataBind();
    }谢谢.

解决方案 »

  1.   

    数据库取值时直接取得SortID对应的中文名称信息,再绑定到DataList,用标签的话直接绑定到标签的Text值
      

  2.   

    问题一:其中SortID字段表达的是分类ID字段,在数据库中存入的是产品分类表的int值,目的想显示所属分类中文名称,后台文件应该如何处理。 使用SQL表连接查询,select 产品名, 分类名 from 产品表 inner join 分类表 on 产品表.SortID = 分类表.SortID 问题二:如果全部采用标签显示,后台文件又应该如何处理:
    <asp:DataList ID="DataList1" Runat="Server">
      <ItemTemplate>
          产品名称: <asp:Label ID="ProName" runat="server" Text='<%# Eval("产品名")>
          产品分类: <asp:Label ID="SortName" runat="server" Text='<%# Eval("分类名")>
      </ItemTemplate>
    </asp:DataList>  
    后台绑定方法不变
      

  3.   

    既然有SortID,那另一个表里面应该就有对应的SortName,这样你把根据条件查询出SortName,比如a表里面装的是SortName,b表里面是SortID,这样的话就select a.SortName from a left join b where a.sortId=b.sortId
    。这样查询出来的值就是SortName了,然后绑定的话,不知道你写model层没有,这样写model层的话要建一个主外键关联的字段,然后绑定时就绑定这个字段。
    标签的话也一样,只是在Text那儿绑定Text='<% Eval("主外键关系字段")%>'
      

  4.   

    model层写了如按照polarissky和MournIA的方法在SQL语句上处理,如果在产品表里有很多类似产品分类这样的int值,显示时都要显示中文,SQL语句就会变长,查询效率会不会降低?
      

  5.   

    http://blog.csdn.net/xianfajushi/archive/2008/11/30/3413317.aspx
      

  6.   

    大家都说了,楼主应该在eval 的应用方面多了解一下..
    这只是简单的实现罢了,例如它的格式化了..等等..<%# Eval("C_FromTime","{0:d}") %> <a herf='<%#Eval(Default.aspx?type={0}),值 %>'
      

  7.   

    你可以这样:
    产品分类: <%# DataBinder.Eval(Container.DataItem, "SortID" )%> 
    这个地方可以帮定一个函数如:
    产品分类: <%# function1(DataBinder.Eval(Container.DataItem, "SortID" ))%> 
    然后在后台写一个public string function1(object SortID)
    {
    int sid=(int)SortID;
    if(SortID==1)
    {
    retrue "Sortname";
    }
    elseif (SortID==2)
    {
    retrue "Sortname2";
    }
    ...
    else
    {
    retrue "";
    }}大概就是这样,楼主可以改一下就可以了!