データベースからリピーターのラベルにテキストを取得しています。データベースからのテキストは巨大です。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>
または、DB から Short Desc を返します
SELECT substring(JobDescription,1,200)+'...' AS ShortJobDescription, JobDescription From Jobs
そして、それをリピーターで使用します
<asp:Label CssClass="ShortDesc" Text='<%# Eval("ShortJobDescription")%>' runat="server"></asp:Label>
{
<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;
}
CSS を使用して、ラベルのスタイルを設定します。要素の高さを制限し、オーバーフローをなしに設定します。
ラベルを 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;
}
次のように、25文字のようなデータベースとしてSQLサーバーを使用している場合、SQLクエリを使用して、データベースから特定の数の文字を取得できます。
SELECT LEFT(LEFT(column_name, 25), LEN(LEFT(column_name, 25)) - CHARINDEX(' ', REVERSE(LEFT(column_name, 25)))) FROM tbl_Name
上記のクエリは、文を分割せずに最初の 25 文字を返します。ラベルにテキストを割り当てたい文字数だけ 25 を置き換えることで、クエリを変更できます。