asp.net gridview wrap boundfield

asp.net - cómo envolver su texto en el límite de Gridview



wrap boundfield (3)

Esta pregunta ya tiene una respuesta aquí:

Tengo una mesa, en la mesa hay un par de botones y una Gridview. Estoy tratando de ajustar el texto en uno de los boundfield de Gridview. Intenté configurar RowStyle Wrap="true" en las propiedades de Gridview y establecí el ItemStyle Wrap="true" y el Width en las propiedades de boundfield. Pero no funcionó. ¿Alguien puede ayudarme?

Lo siguiente es mi aspx .

<table align="center" border="0" cellpadding="0" cellspacing="2" > <tr> <td></td> <td align="right"> <asp:Button ID="btnAdd" runat="server" Text="Add Subscription" onclick="btnAdd_Click" CausesValidation="False" /> </td> </tr> <tr> <td colspan="2"> <p align="center" style="font-family: Arial, Helvetica, sans-serif; font-size: 14px" > <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </p> </td> </tr> <tr> <td align="left" colspan="2"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="SubscriptionID,UserID" DataSourceID="SqlDSEmailSubscriptions" Width="90%" CellPadding="4" EnableViewState="False" AllowPaging="True"> <Columns> <asp:TemplateField HeaderText="SubscriptionName" SortExpression="SubscriptionName"> <ItemTemplate> <asp:LinkButton ID="lbtnSubscription" runat="server" CausesValidation="false" Text=''<%# Eval("SubscriptionName")%>'' OnClick="lbtnSubscription_Click"> </asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="SubscriptionName" HeaderText="SubscriptionName" SortExpression="SubscriptionName" Visible="false" /> <asp:BoundField DataField="SubscriptionID" HeaderText="SubscriptionID" ReadOnly="True" SortExpression="SubscriptionID" /> <asp:BoundField DataField="ProductList" HeaderText="ProductList" SortExpression="ProductList" /> <asp:BoundField DataField="DivisionList" HeaderText="DivisionList" SortExpression="DivisionList" /> <asp:BoundField DataField="DisciplineList" HeaderText="DisciplineList" SortExpression="DisciplineList" /> <asp:BoundField DataField="UserID" HeaderText="UserID" ReadOnly="True" SortExpression="UserID" Visible="false" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDSEmailSubscriptions" runat="server" ConnectionString="<%$ ConnectionStrings:SPRConnectionString %>" SelectCommand="SELECT [SubscriptionID], [SubscriptionName], [ProductList], [DivisionList], [DisciplineList], [UserID] FROM [sprEmailSubscriptions] WHERE ([UserID] = @UserID) ORDER BY [SubscriptionName]"> <SelectParameters> <asp:SessionParameter Name="UserID" SessionField="userID" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> </td> </tr> </table>


Sí, puede analizarlo por cada "x" caracteres, pero tal vez es mejor solución ponerlo en el encabezado de las columnas para que sea de tamaño fijo y definir el ajuste "verdadero".

con esa opción obtendrá el mismo tamaño de cuadrícula cada vez y una mejor y más clara interfaz de usuario.

Use el código:

<asp:BoundField DataField:="Your_data_field" HeaderText="Your_text" sordExpression="Your_sort_expression" ItemStyle-wrap="true" ItemStyle-with="50" />


Envolviendo texto en una columna de gridview con longitud fija.

Primero haga la columna en gridview, donde el texto debe ser envuelto como ItemTemplate .

Esto se puede hacer por:

  • Seleccionar gridview-smart tag> editar columna
  • Seleccione la columna del cuadro inferior izquierdo titulada como Selectedfields
  • Haga clic en "Convertir este campo en TemplateField"> Aceptar

En la fuente verá el siguiente código:

<asp:TemplateField HeaderText="name" SortExpression="name"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text=''<%# Bind("name")%>''></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text=''<%# Bind("name") %>''></asp:Label> </ItemTemplate> </asp:TemplateField>

Proporcione el límite de ancho a la columna en píxeles como:

<ItemTemplate> <asp:Label ID="Label1" runat="server" Text=''<%# Bind("name") %>'' Width="200px"></asp:Label> </ItemTemplate>

Ahora los estilos deben ser agregados:

Si se va a aplicar el page_load() del texto en la columna a todas las columnas o a la vista de cuadrícula completa, escriba el siguiente código en el evento page_load() :

protected void Page_Load(object sender, EventArgs e) { GridView1.Attributes.Add("style", "word-break:break-all; word-wrap:break-word"); }

Si el ajuste del texto en la columna debe aplicarse solo a una columna particular de la vista de cuadrícula, escriba el siguiente código en el evento GridView1_RowDataBound() :

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[0].Attributes.Add("style", "word-break:break-all;word-wrap:break-word;"); } }

Verifica el número de celda de la vista de grilla.

¡Trabajo hecho!


Usar una div en una plantilla de artículo funciona Gr8

<ItemTemplate> <div style="word-wrap: break-word; width: 530px;> <asp:Label ID="lblTermName" runat="server" Text=''<%# Eval("TermName") %>'' /> </div> </ItemTemplate>