NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:24.7.2015 17:41

Ahoj, předem bych se chtěl omluvit pokud jsem tento dotaz zařadil do špatného vlákna, byl jsem na vážkách protože je to půl na půl .Net a HTML.

Takže, dělám webovou aplikaci v ASP .Net (C#, .Net 4.0, WebForms). Na stránce mám div kterému v codebehind nastavuju atribut title který se na stránce objeví jako tooltip, když myš zůstane nad divem.
Data načítám z databáze, jedná se o výpis položek a časový údaj. Potud je vše ok. Potřeboval bych ale nějakým způsobem údaje v tooltipu zarovnat.
Teď text vypadá zhruba takto:

Oběd: 11:00 - 11:30
Krátká pauza: 14:00 - 14:15
Školení: 08:00 - 16:00

Vložení textu a odřádkování je ok, mám ale problém s odsazením, aby časy byly zarovnané vpravo. Už jsem se smířil s tím že do tooltipu můžu dát jen prostý text, takže si nepomůžu žádným html tagem. Zkoušel jsem do textu vkládat tabulátory a zkusil jsem si i vytvořit funkci která mi název akce (oběd, školení atd.) doplní mezerama na 50 znaků, což je maximum které se v daném "sloupci" může objevit. Občas je ale i tak text rozházený. Tipuju že kvůli tomu že každé písmeno je jinak široké. Nenapadá někoho nějaká vychytávka jak string zarovnat? Např. vložením nějakého speciálního znaku do textového řetězce atd.? Popř. by problém mohlo vyřešit nastavení neproporciálního písma atributu title, to ale nevím jestli jde.

Vím že pro tooltipy jdou využit javascriptové knihovny, ale mně tooltip v podstatě vyhovuje tak jak je, jen potřebuju zarovnat časové údaje doprava.

předem díky za jakýkoli nápad

Odpovědět
24.7.2015 17:41
Neaktivní uživatelský účet
Avatar
hanpari
Člen
Avatar
Odpovídá na Neaktivní uživatel
hanpari:24.7.2015 18:53

Tohle by ti mělo stačit:
Např.
String.Format("{0,-10:C}", 126347.89m);

Zdroj:
https://msdn.microsoft.com/….110%29.aspx

Musíš si to nastudovat a přizpůsobit :)

 
Nahoru Odpovědět
24.7.2015 18:53
Avatar
Odpovídá na hanpari
Neaktivní uživatel:27.7.2015 7:57

Ahoj, moc díky nahradil jsem tím tu svojí funkci :) Bohužel problém ale stále přetrvává (viz. obrázek). Je otázka jestli tohle vůbec půjde vyřešit nastavením formátu v C#, možná že to je prostě jen problém toho jak si to vyrenderuje prohlížeč.

Formát nastavuju takhle (toolTip je stringBuilder):

toolTip.AppendFormat("{0,-50}{1,-6:HHH:mm}-{2,6:HHH:mm}\n", task.TypeName, task.TimeFrom, task.TimeTo);

Logicky by to fungovat mělo, protože pokud jsem to z msdn pochopil správně, číslem nastavím šířku pseudosloupce a kladná hodnota znamená zraovnání vpravo, záporná zarovnání vlevo.

Editováno 27.7.2015 7:58
Nahoru Odpovědět
27.7.2015 7:57
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:27.7.2015 8:19

Teď jsem to ještě zkoumal a problém bude asi opravdu v proporcionálním písmu. Počet mezer se nastaví správně, ale vzhledem k tomu že například "I" nezabírá stejně jako "W" tak to je pak rozhozené. Takže otázka je zde jde nějak v tooltipu z měni font na neproporcionální :)

Editováno 27.7.2015 8:21
Nahoru Odpovědět
27.7.2015 8:19
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.