Max 300 ord
7 svar · 416 visningar · startad av MagnusJ
Fast då blit det väl 300 bokstäver?
Du får gå på mellanslagen. En grov metod är att loopa igenom strängen och bygga upp en ny. sluta efter 300 mellanslag.
Måste man skriva nått i codebehind-filerna?
<%# left(DataBinder.Eval(Container.DataItem, "Inlagg").ToString(),300)%>
"The name 'left' does not exist in the class or namespace 'ASP.start_ascx'"
EDIT:
Jon, vi skrev visst samtidigt :)
Är inte så noga om det är 300 bokstäver, behöver bara utöka lite då. Ska ha det på en startsida, det ska vara inledningen till senaste artikeln.
Hej MagnusJ
Prova gärna denna metod.
I aspx sidan läggs detta anrop till den publika funktionen Truncate där du anger hur många tecken som skall visas i din label eller textruta eller vad du använder vid presentation av data.
<asp:Label id=Label1 runat="server" Text='<%# Truncate(DataBinder.Eval(Container, "DataItem.NewsText"), 300) %>'>
</asp:Label>
I din codebehind (vb) har du denna funktionen. Detta sätter max de tecken du skickar in och avsluta med ...
Public Function Truncate(ByVal input As String, ByVal characterLimit As Integer)
Dim output As String = input
If output.Length \> characterLimit AndAlso characterLimit \> 0 Then
output = output.Substring(0, characterLimit)
If Not (input.Substring(output.Length, 1) = " ") Then
Dim LastSpace As Integer = output.LastIndexOf(" ")
If Not (LastSpace = -1) Then
output = output.Substring(0, LastSpace)
End If
End If
output += "..."
End If
Return output
End Function
Lycka till.
Vill du köra koden i C# rekommenderas denna länk vid forma om vb till nämnda kod http://www.developerfusion.com/utilities/convertvbtocsharp.aspx
Testade det där:
Får det här felmeddelandet:
Compiler Error Message: CS1502: The best overloaded method match for 'start.Truncate(string, int)' has some invalid arguments
<%# Truncate(DataBinder.Eval(Container, "DataItem.Inlagg"), 300) %>
och
public object Truncate(string input, int characterLimit)
{
string output = input;
if (output.Length > characterLimit && characterLimit > 0)
{
output = output.Substring(0, characterLimit);
if (!((input.Substring(output.Length, 1) == " ")))
{
int LastSpace = output.LastIndexOf(" ");
if (!((LastSpace == -1)))
{
output = output.Substring(0, LastSpace);
}
}
output += "...";
}
return output;
}
<%# Truncate((string)DataBinder.Eval(Container, "DataItem.Inlagg"), 300) %>
Eller
<%# Truncate(DataBinder.Eval(Container, "DataItem.Inlagg").ToString(), 300) %>
Tack för hjälpen, funkar prima! :)