我正在从数据库中获取文本到转发器中的标签。数据库中的文本很大。我希望它限制为只有 3 行...
<asp:Label Text='<%# Eval("JobDescription")%>' runat="server"></asp:Label>
我正在从数据库中获取文本到转发器中的标签。数据库中的文本很大。我希望它限制为只有 3 行...
<asp:Label Text='<%# Eval("JobDescription")%>' runat="server"></asp:Label>
你可以试试这个
<asp:Label CssClass="ShortDesc" Text='<%# Eval("JobDescription")%>' runat="server"></asp:Label>
CSS
.ShortDesc
{
height:50px;
Overflow:hidden;
}
或限制为 200 或 N 个字符
<asp:Label CssClass="ShortDesc" Text='<%# Eval("JobDescription").ToString().SubString(0,Math.Min(200,Eval("JobDescription").ToString().Length)) %>' runat="server"></asp:Label>
或从您的数据库返回简短描述
SELECT substring(JobDescription,1,200)+'...' AS ShortJobDescription, JobDescription From Jobs
并在你的中继器中使用它
<asp:Label CssClass="ShortDesc" Text='<%# Eval("ShortJobDescription")%>' runat="server"></asp:Label>
使用 CSS 设置标签样式。限制元素的高度并将溢出设置为无。
您可以从数据库中获取一些特定数量的字符,如果您使用 sql server 作为数据库,例如 25 个字符而不破坏句子,则使用 sql 查询,如下所示:
SELECT LEFT(LEFT(column_name, 25), LEN(LEFT(column_name, 25)) - CHARINDEX(' ', REVERSE(LEFT(column_name, 25)))) FROM tbl_Name
上面的查询将返回前 25 个字符而不会中断句子。您可以通过替换 25 个字符来修改查询,该字符与您想为标签分配文本的字符一样多。
{
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="fileName" runat="server" ToolTip='<%# Eval("fileName") %>' Text='<%# Eval("fileName") %>' ></asp:Label>
</ ItemTemplate >
<ItemStyle Width="35%" CssClass="fontWeight limitWidth"/>
}
Inn .css
.limitWidth {
white-space: nowrap;
max-width: 100px;
text-overflow: ellipsis;
overflow-x: hidden;
}
我必须将标签包装在 div 中并应用 css:
<div class="labelLimit">
<asp:Label runat="server" Text='<%#Eval("Body") %>' ></asp:Label>
</div>
.labelLimit{
height:120px;
Overflow:hidden;
text-overflow: ellipsis;
overflow-x: hidden;
}