gpt4 book ai didi

asp.net - 如何在Gridview的boundfield中实现文本换行?

转载 作者:行者123 更新时间:2023-12-02 17:31:39 31 4
gpt4 key购买 nike

我有一个表格,表格中有几个按钮和一个 Gridview。我正在尝试将文本包装在 boundfield 之一中Gridview 的。

我尝试设置 RowStyle Wrap="true"在 Gridview 属性中并设置 ItemStyle Wrap="true"Width在boundfield属性中,但没有工作。

以下是我的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>

最佳答案

将文本包装在具有固定长度的 gridview 列中。

首先在gridview中创建列,其中文本将被包装为ItemTemplate

这可以通过以下方式完成:

  • 选择 gridview — 智能标记 > 编辑列
  • 从左下框中选择标题为 Selectedfields 的列
  • 点击“将此字段转换为 TemplateField”>“确定”

在源代码中您将看到以下代码:

<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>

以像素为单位给出列的宽度限制:

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

现在要添加样式:

如果要将列中的文本换行应用于所有列或整个 GridView ,则在 page_load() 中编写以下代码事件:

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

如果列中的文本换行仅应用于 GridView 的特定列,则在 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;");
}
}

检查gridview的单元格数量。

工作完成!

关于asp.net - 如何在Gridview的boundfield中实现文本换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8017415/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com