Un DataGrid con riconoscimento dei campi con ASP

di Daniele Bochicchio, in Classic ASP, Database, Tips,

Nello script #408 abbiamo visto come creare una semplice griglia con Classic ASP.
Questo script è una semplice variante che, sfruttando la proprietà Type dell'oggetto Field, che rappresenta il singolo campo, ricava la tipologia del campo, formattandolo in maniera differente.
Ovviamente è possibile sfruttare questa variazione anche nelle pagine di modifica/inserimento (script # e #).

<!--METADATA Type="typelib" uuid="{00000205-0000-0010-8000-00AA006D2EA4}"-->
<%

Sub DataGrid(tabella)

  SQLConn = ""' stringa di conn

  set conn = server.createobject("ADODB.Connection")
  conn.open sqlconn

  strSQL = "SELECT * FROM " & tabella
  if len(Request("OrderBy"))>0 then
    strSQL = strSQL & " ORDER BY [" & Request("OrderBy") & "]"
  end if

  Set rs = conn.Execute(strSQL)

  ' ricavo il nome dei campi
  For i = 0 to RS.Fields.Count - 1
    intestazione = intestazione & "<th bgcolor=gray>"
    intestazione = intestazione & "<a href=""datagrid.asp?OrderBy=" & RS(i).Name & """>"
    intestazione = intestazione & rs(i).Name & "</a></th>"
  Next

  ' prendo i dati dal db
  Do until rs.Eof
    risultati = risultati & "<tr>"
    For i = 0 to RS.Fields.Count - 1
      risultati = risultati & "<td>"

      ' che tipo di campo è?
  Select Case rs(i).Type

        ' binari
        Case adVarBinary, adLongVarBinary
          risultati = risultati & "[bin]"

        ' boolean
        Case adBoolean
          risultati = risultati & "<input type='checkbox'"
          if CBool(rs(i)) then risultati = risultati & " checked"
          risultati = risultati & ">"

        ' date
        Case adDate, adDBDate, adDBTime
        risultati = risultati & CDate(rs(i))

        ' altro
        Case Else
          risultati = risultati & Server.HtmlEncode(rs(i))

      End Select

      risultati = risultati & "</td>"
    Next
    risultati = risultati & "</tr>"
    rs.MoveNext
  Loop

  set rs = nothing
  conn.Close
  set conn = Nothing

  ' output
  Response.Write ("<table border=1>")
  Response.Write ("<tr>" & intestazione & "</tr>")
  Response.Write ("<tr><td>" )
  Response.Write (risultati)
  Response.Write ("</td></tr></table>" )
End Sub

Call DataGrid("ordini")

%>

Approfondimenti


#456 - Creare in automatico una maschera di inserimento record
https://www.aspitalia.com/liste/usag/script.aspx?ID=456

#550 - Aggiungere una maschera di modifica di un database
https://www.aspitalia.com/liste/usag/script.aspx?ID=550

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi