当文本很长并且被包装时,gridview boundfield width不受控制

时间:2016-08-21 04:00:54

标签: c# html css asp.net gridview

我有一个gridview,我有两个长列Primary_Skill和Resume_Title。我设置了列的宽度并将它们包裹起来,但是换行不超过2行,并且前两列的宽度与宽度的设置相比仍然更宽。其余列不显示在同一屏幕中。以下是我的代码。

 <asp:GridView ID="grdSearchResult" runat="server" DataKeyNames="SeekerEmail_Id, Extension"
                        OnRowDataBound="OnRowDataBound" AutoGenerateColumns="False" BorderWidth="1px"
                        BackColor="White" CellPadding="5" BorderStyle="None" BorderColor="Gray" Width="100%"
                        GridLines="Both">
                        <FooterStyle ForeColor="Black" BackColor="White"></FooterStyle>
                        <PagerStyle ForeColor="Black" HorizontalAlign="Center" BackColor="White"></PagerStyle>
                        <HeaderStyle ForeColor="White" Font-Bold="True" BackColor="Green" Width="25%"></HeaderStyle>
                        <Columns>
                            <asp:BoundField HeaderText="Job Skills" DataField="Primary_Skill" SortExpression="Primary_Skill"
                                ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="true">
                                <ItemStyle Width="25%" />
                            </asp:BoundField>
                            <asp:BoundField HeaderText="Resume Title" DataField="Resume_Title" SortExpression="Resume_Title"
                                ItemStyle-HorizontalAlign="Center" ItemStyle-Width="25%" ItemStyle-Wrap="true">
                            </asp:BoundField>
                            <asp:BoundField HeaderText="Exp (Years)" DataField="Experience" SortExpression="Experience"
                                ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%"></asp:BoundField>
                            <asp:TemplateField HeaderText="Location" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20%">
                                <ItemTemplate>
                                    <asp:Label ID="lblLocation" runat="server" ToolTip='<%# Eval("Location")%>' Text='<%# Eval("Location").ToString().Shorten(30) %>'
                                        Style="word-wrap: normal; word-break: break-all; cursor: default;"></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField HeaderText="Post Date" DataField="Creation_Date" SortExpression="Creation_Date"
                                ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" DataFormatString="{0:dd-MM-yyyy}">
                            </asp:BoundField>
                            <asp:TemplateField HeaderText="Download Resume" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <asp:UpdatePanel ID="lnkdownldUpdate" runat="server">
                                        <ContentTemplate>
                                            <asp:LinkButton ID="lnkDownload" ToolTip='<%#Eval("SeekerEmail_Id")%>' Text='<%#Eval("SeekerEmail_Id").ToString().Shorten(30) %>'
                                                CommandArgument='<%# Eval("Resume_Title") %>' OnClick="DownloadFile" runat="server"
                                                Style="word-wrap: normal; word-break: break-all; cursor: pointer;"></asp:LinkButton>
                                        </ContentTemplate>
                                        <Triggers>
                                            <asp:PostBackTrigger ControlID="lnkDownload" />
                                        </Triggers>
                                    </asp:UpdatePanel>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                        <SelectedRowStyle ForeColor="White" Font-Bold="True" BackColor="#008A8C"></SelectedRowStyle>
                        <RowStyle ForeColor="Black" BackColor="White"></RowStyle>
                        <SortedAscendingCellStyle BackColor="#F1F1F1" />
                        <SortedAscendingHeaderStyle BackColor="#0000A9" />
                        <SortedDescendingCellStyle BackColor="#CAC9C9" />
                        <SortedDescendingHeaderStyle BackColor="#000065" />
                    </asp:GridView>

当列值很短时,它显示正常,但是当它很长时则不显示。以下是截图。这是我希望在此屏幕中容纳所有列的整个屏幕。

enter image description here

2 个答案:

答案 0 :(得分:1)

在每个工作技能之间腾出空间。不是Java,J2EE,而是Java, J2EE。如果它们没有空格连接,浏览器会将其视为1个单独的字符串并将其放在一行上。如果字符串中有空格或-,它可以包装单元格中的单词。 Spring Framework在整个字符串中有第一个空格,这就是为什么它在那时转到第二行。

简历标题也是如此。包含所有下划线的Word文档将始终显示在一行中,并将确定列的最小宽度。同样,这个字符串不能包含在单元格中。要么只在该单元格中显示固定数量的字符,要么将内容放在divoverflow: hidden

答案 1 :(得分:1)

修改boundfield,如下所示

.grdSearchResultbreakword
{
  word-wrap:break-word;
  word-break:break-all;
}
<asp:BoundField HeaderText="Job Skills" DataField="Primary_Skill" SortExpression="Primary_Skill"
                        ItemStyle-Width="40%" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="true"
                        ItemStyle-CssClass="grdSearchResultbreakword"></asp:BoundField>