Lunghezza del testo

venerdì 28 agosto 2009 - 16.00

lordwaizard Profilo | Senior Member

Ho una domanda un pò banale ma non so come risolverla.
Ho una stringa di testo varibile presa da un db, di solito per non sforare come lunghezza usavo la funzione mid (o similari) e risolvevo il problema.
Siccome le stringhe sono molte, e questa volta non so qual'è il limite di caratteri, come posso gestire la situazione?
Avevo pensato di fare un rapporto width/n caraterri, e di abbinarlo al ridimensionamento.

C'è qualcosa di più semplice?

Più che altro che dovrei ricaricare tutte le 78 stringhe, e non vorrei far aspettare troppo l'utente.
Non esiste un modo per nasconderli le stringhe intere?

Grazie in anticipo
Davide

luxsor Profilo | Guru

Ciao Davide,
sinceramente non ho capito il tuo problema.
Potresti farmi un esempio?

Fammi sapere


------------------------
Luxsor

lordwaizard Profilo | Senior Member

Il db contiene tre righe:
1) Ciao questa è una prova
2) Prova prova prova
3) Scrivere scrivere....


Ora se io avessi una colonna width=50px so che non ci starebbe tutto il testo, e dovrei provvedere a tagliarlo con mid o altri sistemi.
Ma se la tabella è 100% come faccio a sapere a quanti caratteri devo tagliarlo?

Metti pure che ogni volta che viene caricato cambia la width abbinandolo alla funzione onresize mi conto i caratteri.

Ma rimane il problema che le stringhe sono caricare da db quindi:

ES 1
width=100% (reali 500px)
frase "Ciao questa è una prova"


Tutto è perfetto


ES2
width 100% (reali 50px)

Devo tagliare ma quanto? il programma lato server ha già scritto "Ciao questa è una prova".
Considerando che lui ridimensioni la finistra cosa faccio devo fare un refresh perchè ormai il dato è perso?


Sinceramente non so come uscirne...

Grazie del tuo aiuto


PS
In sintesi mi servirebbe un sistema per stampare la stringa intera e visualizzarla solo quella che ci sta nella cella.
Così se si ridimensiona mostra la parte nascosta senza caricare di nuovo il db,

PS2
Considera che le stringhe sono minimo 78, un reload del db potrebbe risulatre pesantino.





luxsor Profilo | Guru

Ma questo Width che vuoi ridimensionare è una cella di una tabella?

>Ma se la tabella è 100% come faccio a sapere a quanti caratteri
>devo tagliarlo?
Quel 100% si riferisce alla risoluzione dello schermo.

>ES2
>width 100% (reali 50px)
puoi utilizzare la seguente formula approssimativa:

Numero di Caratteri = 50px / (dimensione Carattere)

Facendo cosi se utilizzi un carattere 10 su 50px devi tagliare dal sesto carattere un poi.

Ti consiglio di abbandonare l'approccio con il tag Table e utilizzare qualche controllo Repeater ecc...

Fammi sapere


------------------------
Luxsor

lordwaizard Profilo | Senior Member

Cosa sono i controlli Repeater ?

luxsor Profilo | Guru

Dai un occhiata qua:
http://www.aspitalia.com/articoli/asp.net/grouprepeater.aspx


------------------------
Luxsor

Gluck74 Profilo | Guru

io in genere questo problema lo risolvevo in maniera un po più approssimativa.
Ovvero decidevo a priori di tagliare la stringa ad esempio a 10 caratteri. Nella cella della tabella quindi si vedeva "bla bla bla..." (attaccavo i tre puntini per far capire che il testo era solo un abstract), ed al passaggio del mouse visualizzavo un tooltip javascript (esempio overLib) con il testo completo.

Naturalmente io avevo fatto la scelta di mantenere fisse le dimensioni delle colonne (o contenitori che siano).
Se tu hai la necessità di variare le dimensioni, credo che l'unica maniera sia agire lato client con javascript.

così su due piedi mi verrebbe in mente di aggiungere una funzione onResize (se esite) al contenitore del testo. Questa funzione in pratica controlla la larghezza del contenitore stesso e calcola, come detto da luxor, i caratteri da tagliare.

se vuoi affinare ancora di più la funzione, dovresti calcolarti le posizioni in px degli spazi (in base alla posizione), e troncare la frase e non le parole.

Però fai una considerazione: se nella pagina visualizzi tutte e 78 le righe, e poi ridimensioni il contenitore, la funzione scatta 78 volte e calcola 78 dimensioni nuove dei testi...... Forse il client si incazza un pochino....
Magari anche a te conviene di decidere a priori una dimensione fissa e risolvi velocemente il problema.

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5