在GridView里的一个描述单元格里,有三种产品描述,我想把他们在单元格里以三行显示,但是不知道怎么才能实现这个换行。
先说下我的方法:
前台:
      <asp:TemplateField HeaderText="DESCRIPTION">
       <ItemTemplate>
       <asp:Label ID="lbl1" runat="server"></asp:Label><br />
       </ItemTemplate>
           <ItemStyle HorizontalAlign="Left" />
       </asp:TemplateField>后台:
      lbl1.Text=dr["prodes1"].ToString()+"<br/>"+dr["prodes2"].ToString()+"<br/>"+dr["prodes3"].ToString()  无法实现   将<br/>改为\r\n也无法实现      <asp:TemplateField HeaderText="DESCRIPTION">
       <ItemTemplate>
       <asp:Label ID="lbl1" runat="server" Text='<%#Eval("prodes1") %>'></asp:Label><br />
       <asp:Label ID="lbl2" runat="server" Text='<%#Eval("prodes2") %>'></asp:Label><br />
       <asp:Label ID="lbl3" runat="server" Text='<%#Eval("prodes3") %>'></asp:Label>              
       </ItemTemplate>
           <ItemStyle HorizontalAlign="Left" />
       </asp:TemplateField>这样倒可以实现,但并非每个产品都有三个描述,只有一个描述的话就会在单元格白白空出两行,结果与其他单元格无法对齐。。请大家指点方法,谢谢~

解决方案 »

  1.   

     lbl1.Text=dr["prodes1"].ToString()+"\\r\\n"+dr["prodes2"].ToString()+"\\r\\n"+dr["prodes3"].ToString()试试。
      

  2.   

    写在一起:
    <asp:Label ID="lbl1" runat="server" Text=' <%#Eval("prodes1").ToString()+"<br>"+Eval("prodes2").ToString()+"<br>"+Eval("prodes3").ToString()  %>'> </asp:Label> <br /> 
       
      

  3.   

    可以用三元运算符判断是否为空在前面加个<br />
     <%-- 2009/06/10 测试通过--%>
    <asp:TemplateField>
                  <ItemTemplate>
                     <%#Eval("title") %> 
                      <%#Eval("title2").ToString() == "" ? "" : "<br />" + Eval("title2").ToString()%>
                       <%#Eval("title3").ToString() == "" ? "" : "<br />" + Eval("title3").ToString()%>
                  </ItemTemplate>
     </asp:TemplateField>
      

  4.   

    row.cell(0).clear();
    table ta=new table();
    ta.columns.add()//添加一列
    ta.rows[0].add(control1)
    ta.rows[1].add(control2)
    ta.rows[2].add(control3)
    row.cell(0).control.add(ta);
    大约如此,
      

  5.   

    可以啊,我已经运行过了:
    test6.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test6.aspx.cs" Inherits="test6" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
             <Columns>
               <asp:TemplateField>
                  <ItemTemplate>
                     <%#Eval("id") %>
                  </ItemTemplate>
               </asp:TemplateField>           
               <asp:TemplateField>
                  <ItemTemplate>
                     <%#Eval("title") %> 
                      <%#Eval("title2").ToString() == "" ? "" : "<br />" + Eval("title2").ToString()%>
                       <%#Eval("title3").ToString() == "" ? "" : "<br />" + Eval("title3").ToString()%>
                  </ItemTemplate>
               </asp:TemplateField>        
              
             </Columns>
            </asp:GridView>
        
        </form>
    </body>
    </html>
    test6.aspx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class test6 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridView1.DataSource = DataTablebind1();
                GridView1.DataBind();
            }
        }
        DataTable DataTablebind1()
        {       
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add(new DataColumn("id", typeof(Int32)));
            dt.Columns.Add(new DataColumn("title", typeof(String)));
            dt.Columns.Add(new DataColumn("title2", typeof(String)));
            dt.Columns.Add(new DataColumn("title3", typeof(String)));
            for (int i = 0; i < 10; i++)
            {
                Random rd = new Random(Environment.TickCount * i);            dr = dt.NewRow();
                dr[0] = i;
                dr[1] = "标题" + i;
                dr[2] = "标题2" + i;
                dr[3] = "标题3" + i;
                dt.Rows.Add(dr);
            }
            dr = dt.NewRow();
            dr[0] = 11;
            dr[1] = "标题11";
            dr[2] = "标题21";
            dr[3] = "";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 12;
            dr[1] = "标题12";
            dr[2] = "";
            dr[3] = "";
            dt.Rows.Add(dr);
            return dt;
        }
    }