Sì, ci sono tanti modi. Uno è quello di sotto.
Ho una tabella, table1, con i campi id, stringa, numero, data
Il mio obiettivo è intercettare la lettera à del campo stringa e sostituirla con X
pagina html
codice:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../App_Themes/classico8/StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div class="professionale_2">
<asp:Repeater ID="Repeater1" runat="server" EnableViewState="false">
<HeaderTemplate>
<table>
<tr>
<th>id</th>
<th>stringa</th>
<th>numero</th>
<th>data</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("id")%></td>
<td><%#Eval("stringa").ToString().Replace("à"c,"X"c)%></td>
<td><%#Eval("numero")%></td>
<td><%#Eval("data")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
pagina vb
codice:
Option Strict On
Imports o = MySql.Data.MySqlClient
Partial Class prove_a
Inherits System.Web.UI.Page
Private stringaConnessione As String = "Server=localhost;Database=test;Uid=test;Pwd=0000;"
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
BindData()
End If
End Sub
Private Sub BindData()
DataBind(Me.Repeater1, stringaConnessione, "select * from table1")
End Sub
'-----------------------------------------------------------------------
'Fa il DataBind di un Repeater => da mettere in una libreria esterna
'-----------------------------------------------------------------------
Public Function DataBind(Ctrl As System.Web.UI.WebControls.Repeater, StringConnection As String, sql As String) As Boolean
Dim Connessione As o.MySqlConnection = Nothing
Dim Comando As o.MySqlCommand
Dim Reader As o.MySqlDataReader = Nothing
Try
Connessione = New o.MySqlConnection(StringConnection)
Connessione.Open()
Comando = Connessione.CreateCommand()
Comando.CommandText = sql
Reader = Comando.ExecuteReader
Ctrl.DataSource = Reader
Ctrl.DataBind()
DataBind = Reader.HasRows
Catch ex As Exception
Throw
Finally
Try
If Not (Reader Is Nothing) Then Reader.Close()
Catch
End Try
If Not (Connessione Is Nothing) Then Connessione.Close()
Ctrl.DataSource = Nothing
End Try
End Function
End Class
nota <%#Eval("stringa").ToString().Replace("à"c,"X"c) %> che fa quello che volevo.
Naturalmente, se il campo non contiene nulla, va in errore. Prova se è così. Ci sono naturalmente modi per ovviare.
C'è un altro modo, ma questo alla prossima (se interessa
)
NOTA l'istruzione Option Strict On in testa al codice vb: assolutamente necessaria.