Replace in DataSet

lunedì 01 dicembre 2003 - 19.14

Ugly Mau Profilo | Newbie

Ciao

Tramite un DataSet e un controllo Repeater visualizzo del testo preso da un DB, ora ho la necessità di modificare il testo, ma soltanto a video, come posso fare, per esempio, un "Replace" di una parola con un'altra con il DataSet. Sapete farmi un semplice esempio cosi da orientarmi meglio nella ricerca, che fino ad ora non ha dato nessun risultato :)

Grazie

oaiC

Brainkiller Profilo | Guru

Fai un esempio pratico delle sostituzioni replace che devi fare.
Ci sono tre modi diciamo, o usi il metodo Replace() della classe String e cicli sugli elementi del DataSet sostituendo alcuni testi con quello che vuoi, oppure direttamente da SQL puoi usare la REPLACE che ti sostituisce del testo con altro testo proprio al livello della query (senza modificare niente nel DB naturalmente), oppure nel repeater puoi intercettare l'evento ItemDataBound e modificare il testo a tuo piacimento proprio nel mondo in cui è bindato.

ciao
david

Ugly Mau Profilo | Newbie

Vorrei fare un Replace del tipo:
<b> al posto di [b] e anche mettere un <br> al posto di VbCrlf, magari qualche altra sostituzione più complessa (ma per ora va bene anche il semplice replace) sono più o meno le piccole funzioni che si trovano nei forum per dare una certa formattazione nel testo.
Nella query, è vero non ci avevo pensato! Però vorrei fare qualcosa a livello di DataSet, devo imparare. Scripto in asp ma asp.net è un'altra cosa!!

Sai indicarmi qualche esempio degli altri due metodi? Mi sono perso nei libri e non trovo niente a riguardo.

Grazie
oaiC

luca76-rm Profilo | Newbie

Allora per prima cosa non ti conviene fare una replace sul dataset perché dovresti scrivere tanto codice noioso. Conviene che lo fai a livello di database se è proprio necessario. Se invece vuoi modificare dei campi del repeater, datalist o datagrid a video, ti conviene utilizzare i due eventi ItemDataBound e ItemCreated che questi oggetti mettono a disposizione. Es:

nella pagina .aspx piazzi l'oggetto server:

<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<%# DataBinder.eval(Container.dataitem, "prova") %> </ItemTemplate>
</asp:Repeater>

nella pagina .vb scrivi il codice necessario:

Private Sub Repeater1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemCreated
If e.Item.ItemType = ListItemType.Item Then
e.Item.DataItem("prova") = "testo modificato"
End If
End Sub

spero di aver capito il problema e di esserti stato d'aiuto.
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