asp.net 如何在asp中使用vb使gridview控件的编辑文本框中的文本换行?

avkwfej4  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(221)

我在一个aspx页面上使用VS2019和VB。我有一个启用了编辑的网格视图。

当您单击“编辑”时,将显示文本,但所有文本都显示在一行上,并且不换行(注解列)。

我已使用ControlStyle增加了文本框的大小(400x240),但文本仍在文本框中居中,并且不换行。
我看不到文字换行或对齐选项
我该怎么做?

<asp:GridView ID="grdgoals" runat="server" AutoGenerateColumns="False" DataSourceID="DS1" Height="225px" Width="1001px" BorderColor="#003960" BorderStyle="Solid" BorderWidth="1px" DataKeyNames="goalid" EmptyDataText="No goals found." Font-Bold="True" Font-Names="Calibri" Font-Overline="False" Font-Size="Medium" Font-Strikeout="False" ForeColor="#00AD86" ShowHeaderWhenEmpty="True" AllowSorting="True" style="margin-right: 21px">
            <Columns>
                <asp:BoundField DataField="goalid" HeaderText="goalid" ReadOnly="True" SortExpression="goalid" Visible="False" />
                <asp:CommandField EditText="EDIT" ShowEditButton="True" ShowHeader="True">
                    <HeaderStyle BorderColor="#003960" />
                <ItemStyle Font-Names="Calibri" Font-Underline="True" ForeColor="#006EAA" HorizontalAlign="Center" BorderColor="#003960" Width="20px" />
                </asp:CommandField>
                <asp:BoundField DataField="goaltext" HeaderText="Goal" SortExpression="goaltext" ReadOnly="True" >
                    <HeaderStyle BorderColor="#003960" />
                    <ItemStyle BorderColor="#003960" Width="250px" />
                </asp:BoundField>
                <asp:BoundField ConvertEmptyStringToNull="True" DataField="type" HeaderText="Type" ReadOnly="True" >
                <ItemStyle Width="70px" />
                </asp:BoundField>
                <asp:BoundField DataField="progress" HeaderText="Progress %" SortExpression="progress" >
                    <HeaderStyle BorderColor="#003960" />
                <ItemStyle HorizontalAlign="Center" BorderColor="#003960" VerticalAlign="Middle" Width="20px" />
                </asp:BoundField>
                <asp:BoundField DataField="comments" HeaderText="Comments" SortExpression="comments" ItemStyle-Wrap="true">
                    <ControlStyle Height="400px" Width="240px" />
                    <HeaderStyle BorderColor="#003960" />
                    <ItemStyle BorderColor="#003960" Width="250px" HorizontalAlign="Left" VerticalAlign="Middle" />
                </asp:BoundField>
                <asp:BoundField DataField="approved" HeaderText="Approved" ReadOnly="True" SortExpression="approved" >
                <ItemStyle HorizontalAlign="Center" Width="40px" />
                </asp:BoundField>
            </Columns>
            <EditRowStyle HorizontalAlign="Left" VerticalAlign="Top" />
            <HeaderStyle ForeColor="#006EAA" />
        </asp:GridView>

我曾尝试使用这样的代码,但我在网上找到了EditItemTemplate,但得到一条消息,它不受支持。
'〉

gfttwv5a

gfttwv5a1#

您可以在plane jane文本框中拖放,而不使用绑定字段。
因此,假设在GV之外的区域中,在文本框中拖放。
设置文本模式=
因此,您的文本框将如下所示:

<asp:TextBox ID="TextBox1" runat="server" Height="112px"
            TextMode="MultiLine" Width="282px">
        </asp:TextBox>

因此,它将创建一个漂亮的更大的文本框。

现在,在GV中,删除一个数据绑定文本框,并使用所谓的模板字段,如下所示:

<asp:GridView ID="GridView1" runat="server" CssClass="table table-hover" AutoGenerateColumns="False"
    DataKeyNames="ID"
    DataSourceID="SqlDataSource1">
    <Columns>
        <asp:CommandField ShowEditButton="True" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
        <asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
        <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
        <asp:BoundField DataField="HotelName" HeaderText="HotelName" SortExpression="HotelName" />

        <asp:TemplateField HeaderText="Description">
            <ItemTemplate>
                <asp:Label ID="TextBox1" runat="server" Height="80px"
                    Text='<%# Bind("Description") %>'></asp:Label>
            </ItemTemplate>
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Height="80px"
                    TextMode="MultiLine" Width="282px"
                    Text='<%# Bind("Description") %>'>
                </asp:TextBox>
            </EditItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

因此,请注意我们是如何添加模板的,以及“编辑模板”需要什么。我们使用的是文本框,而不是标签。
所以,现在我们将看到[有这种效果]:

因此,您可以在文本框中拖放,文本模式=多行,然后您应该有一个不错的文本编辑区域。

相关问题