Jak na zalamování delších textů   zodpovězená otázka

ASP.NET WebForms

Zdravím,

měl bych jeden obecnější dotaz a sice ten, jak se v praxi ošetřuje stav, kdy uživatel např. do komentáře napíše jeden dlouhý text bez mezery.

Jde totiž o to, že když uživatel standartně píše text, tak si ho komponenta (např. literal, label atd.) za nejbližším vhodným slovem zalomí a prostě pokračuje na dalším řádku. Ale dejme tomu že je povoleno zadat text o délce 5000 znaků a nějaký uživatel potížista zadá celý komentář jako jedno slovo bez mezer (třeba proto, že se mu jeví jako dobrý nápad vložit na forum hash svého životopisu nebo je to prostě klasický prudič). V tom případě se text nezalomí, protože komponenta neví kde by ho měl zalomit. To pak nevypadá dobře, protože komponenta s textem utíká z monitoru. Jak se toto v praxi ošetřuje?

Jediné co mě napadlo je před vložením do databáze projet text jestli se nejedná o tento případ a pokud ano, tak tam třeba každých 50 znaků vložit mezeru. Ale to mi příjde dost neohrabané. Řeší se to nějak v praxi a nebo se takovéto perly prostě upravují ručně v databázi?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Předně - o zalamování se nestará komponenta, ale prohlížeč, tohle není zálažitost ASP.NET, ale čistého HTML.

Co se týče rozdělení delších slov, jsou dvě možnosti - buď to neřešit (to máme třeba tady na vbnetu, když si toho všimnu v nějakém komentáři, vyřeším to ručně úpravou příspěvku - dělá to třeba typicky, když sem někdo vloží stack trace), anebo prostě delší slova třeba po 50 znacích nakouskovat (ideálně při výpisu do stránky, ne už při ukládání do databáze; databáze má uchovávat čistá data, ne řešit specifičnosti a úchylnosti prezentační vrstvy, to koneckonců oceníte, když se náhodou aplikace rozroste a budete dělat třeba těžkého klienta ve WinForms).

Je velká škoda, že tohle nejde spolehlivě řešit pomocí CSS - IEčko sice umí word-wrap: break-word a W3C konsorcium usoudilo, že je to užitečná fíčura, takže v nové verzi bude standardizováno wrap: word, aby to IEčko zase mělo blbě. No, co já se tomu divím. V ostatních prohlížečích to ale nefunguje spolehlivě.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky za odpověď. Tak já to tedy taky řešit nebudu a případné chyby budu upravovat ručně.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback