Я сделал небольшую демонстрацию для вас.Демонстрируя, как отображать длинный текст.
В этом примере есть столбец Name, который может содержать очень длинный текст. boundField будет отображать все содержимое в ячейке таблицы, и поэтому ячейка будет расширяться по мере необходимости (из-за содержимого)
TemplateField будет также отображаться как ячейка, НО она содержит div , который ограничивает width любого контекста, например, 40px.Таким образом, этот столбец будет иметь некоторую максимальную ширину!
<asp:GridView ID="gvPersons" runat="server" AutoGenerateColumns="False" Width="100px">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Name (long)" DataField="Name">
<ItemStyle Width="40px"></ItemStyle>
</asp:BoundField>
<asp:TemplateField HeaderText="Name (short)">
<ItemTemplate>
<div style="width: 40px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis">
<%# Eval("Name") %>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
![enter image description here](https://i.stack.imgur.com/69sFk.png)
Вот мой демонстрационный код за
public partial class gridViewLongText : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region init and bind data
List<Person> list = new List<Person>();
list.Add(new Person(1, "Sam"));
list.Add(new Person(2, "Max"));
list.Add(new Person(3, "Dave"));
list.Add(new Person(4, "TabularasaVeryLongName"));
gvPersons.DataSource = list;
gvPersons.DataBind();
#endregion
}
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public Person(int _ID, string _Name)
{
ID = _ID;
Name = _Name;
}
}