笑看人生


坐看风起云涌,笑看缘起缘灭...

        最近,发现在用DataGrid显示数据的时候,英文的不会自动换行,而会把页面撑的很难看,而中文就不会出现这个问题.所以研究了一下,发现这样可以解决问题.
(1)首先在DataGrid中添加一个模板列;
(2)在模板列里增加一个<DIV></DIV>标签,然后设置其Style属性.
<div style="width:100px;word-wrap:break-word;word-break:break-all">...</div>

例如:

Test.aspx代码:(直接拷贝到.aspx页面的body里,红色的是重点)

<table  cellSpacing=0 cellPadding=0 width="180px" align=center border=1>
           <tr>
            <td>
              <asp:datagrid id=DataGrid2 AutoGenerateColumns="False" runat="server" Width="100%">
                 <columns>
                      <asp:boundcolumn HeaderText="ID" DataField="ID"></asp:boundcolumn>
                      <asp:templatecolumn HeaderText="内容">
                        <itemtemplate>
                            <div style="WIDTH: 150px; WORD-WRAP: break-word;word-break:break-all"><%#databinder.eval(container.dataitem,"content")%></div>
                        </itemtemplate>
                     </asp:templatecolumn>
                </columns>
              </asp:datagrid>
           </td>
        </tr>
   </table>

Test.cs文件:(可直接把代码复制到.cs里)

private void Page_Load(object sender, System.EventArgs e)
  {
   DataGrid2.DataSource=CreateDataView();
   DataGrid2.DataBind();

  
  }
  
  private DataView CreateDataView()
  {
   DataTable dt=new DataTable ();
   dt.Columns.Add("ID",typeof(Int32));
   dt.Columns.Add("Content",typeof(String));
   DataRow dr;

   for (int i=0;i<3;i++)
   {
    dr=dt.NewRow();
    dr[0]=i.ToString();
    dr[1]="163.com,163.com,163.com,163.com,163.com,163.com,163.com,163.com,163.com,163.com";
    dt.Rows.Add(dr);
   }

   DataView dv=new DataView (dt);
   return dv;
  }

posted on 2006-08-14 21:31  笑看人生  阅读(1072)  评论(0编辑  收藏  举报