[英]How to make a limit on a text that has been eval from database
my issue is i don't know how to make "tekst" only have 180 charecters. 我的问题是我不知道如何使“ tekst”只有180个字符。 can anybody help me ? 有谁能够帮助我 ? when it's eval and it's above 180 i have to cut it down to 180, and do a read more link. 当它达到eval并且高于180时,我必须将其减小到180,并做一个更多的链接。
<asp:Panel ID="biler_panel" runat="server" Visible="False">
<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>" DeleteCommand="DELETE FROM [Artikler] WHERE [Id] = @Id" InsertCommand="INSERT INTO [Artikler] ([Navn], [Tekst], [Dato], [Vist], [Fk_kat]) VALUES (@Navn, @Tekst, @Dato, @Vist, @Fk_kat)" ProviderName="<%$ ConnectionStrings:DatabaseConnectionString1.ProviderName %>" SelectCommand="SELECT [Id], [Navn], [Tekst], [Dato], [Vist], [Fk_kat] FROM [Artikler]" UpdateCommand="UPDATE [Artikler] SET [Navn] = @Navn, [Tekst] = @Tekst, [Dato] = @Dato, [Vist] = @Vist, [Fk_kat] = @Fk_kat WHERE [Id] = @Id">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Navn" Type="String" />
<asp:Parameter Name="Tekst" Type="String" />
<asp:Parameter Name="Dato" Type="DateTime" />
<asp:Parameter Name="Vist" Type="Int32" />
<asp:Parameter Name="Fk_kat" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Navn" Type="String" />
<asp:Parameter Name="Tekst" Type="String" />
<asp:Parameter Name="Dato" Type="DateTime" />
<asp:Parameter Name="Vist" Type="Int32" />
<asp:Parameter Name="Fk_kat" Type="String" />
<asp:Parameter Name="Id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:Repeater ID="Repeater5" runat="server" DataSourceID="SqlDataSource5">
<ItemTemplate>
<div id="bilerdiv"><p class="overskrift"><%# Eval("Navn") %></p>
<p class="tid"><%# Eval("Dato") %></p>
<p class="tekst"><%#Eval ("Tekst") %></p>
</div>
</ItemTemplate>
</asp:Repeater>
You could try: 您可以尝试:
<%# Eval("Tekst").ToString().PadRight(180).Substring(0, 180).TrimEnd() %>
Or using LINQ: 或使用LINQ:
<%# Eval("Tekst").ToString().Take(180).Aggregate("", (x,y) => x + y) %>
EDIT : For a Read More link implementation, you can use jQuery assuming your markup will be as follows: 编辑 :对于Read More链接实现,您可以使用jQuery并假设您的标记如下:
HTML : HTML :
<p class="tekst-limited"><%# Eval("Tekst").ToString().PadRight(180).Substring(0, 180).TrimEnd() %></p>
<p class="tekst-full"><%#Eval ("Tekst") %></p>
<a href="#" class="button"></a>
jQuery : jQuery的 :
$(".button").click(function(){
var moreAndLess = $("p").is(':visible') ? 'Read More' : 'Less';
$(this).text(moreAndLess);
$(".tekst-full").slideToggle();
});
What you can do you can show it on mouse over as title. 您可以做的是,可以将鼠标悬停在其上作为标题显示。
<div id="bilerdiv">
<p class="overskrift" title='<%# Eval("Tekst").ToString()%>'>
<%# Eval("Tekst").ToString().PadRight(180).Substring(0, 180).TrimEnd() %>
</p>
......
</div>
If it is greater than 180 character the 180 will be shown and all will be shown on mouse over on you <p>
如果它大于180个字符,则将显示180,并且全部显示在鼠标悬停在您的<p>
There are may tool-tip of jquery available which you can use. 可能有可用的jquery工具提示。
The CSS text-overflow property might help here. CSS 文本溢出属性可能会有所帮助。 That way you don't have to anything, and let the browser do the work for you. 这样,您就不需要任何操作,让浏览器为您完成工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.