最近,发现在用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;
}