Visualizzazione dei risultati da 1 a 10 su 10

Discussione: separare stringa

  1. #1
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866

    separare stringa

    Ottengo l'errore dalla riga in rosso, ovviamente perchè la stringa non viene separata.

    codice:
    Dim CommandArgument="<%# ConcatenaChiavi(DataBinder.Eval(Container, 'DataItem.Chiave1'),DataBinder.Eval(Container, 'DataItem.Chiave2'),DataBinder.Eval(Container, 'DataItem.Chiave3'),DataBinder.Eval(Container, 'DataItem.Chiave4'),DataBinder.Eval(Container, 'DataItem.Chiave5'),DataBinder.Eval(Container, 'DataItem.Chiave6',DataBinder.Eval(Container, 'DataItem.Chiave7')) %>" 
    
    
    Public Function ConcatenaChiavi(chiave1 As Object, chiave2 As Object, chiave3 As Object, chiave4 As Object, chiave5 As Object, chiave6 As Object, chiave7 As Object) As String
    
    	Dim key As String = String.Empty
    
    
    	key += "~" & chiave1
    	key += "~" & chiave2
    	key += "~" & chiave3
    	key += "~" & chiave4
    	key += "~" & chiave5
    	key += "~" & chiave6
    	key += "~" & chiave7
    	key = key.Substring(1)
    
    	Return key
    End Function
    
          Sub LinkButton_Command(sender As Object, e As CommandEventArgs)
    
    	If e.CommandName = "Update" Then
    
    		Dim keyComposta As String = e.CommandArgument
    		
    		Dim chiave1 As String = keyComposta.Split("~")(0)
    		Dim chiave2 As String = keyComposta.Split("~")(1) 
    		Dim chiave3 As String = keyComposta.Split("~")(2)
    		Dim chiave4 As String = keyComposta.Split("~")(3)
    		Dim chiave5 As String = keyComposta.Split("~")(4)
    		Dim chiave6 As String = keyComposta.Split("~")(5)
    		Dim chiave7 As String = keyComposta.Split("~")(6)
    
    
    
          <asp:Button id="Button1"
               Text=""
               CommandName="Update"
               CommandArgument='<%# string.Format("{0}{1}{2}{3}{4}{5}{6}",Eval("ID"),Eval("C"),Eval("Condizioni"),Eval("Max"),Eval("Tot"),Eval("Tot1"),FormatNumber(Eval("Prezzo"),2))%>'
               OnCommand="LinkButton_Command" 
               runat="server" class="go" />

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Mi sa che mancano le parentesi per renderla un array:

    codice:
    Dim keyComposta As String() = e.CommandArgument.ToString.Split("~")
    
    Dim chiave1 As String = keyComposta(0)
    Dim chiave2 As String = keyComposta(1)

  3. #3
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Grazie per la risposta, ma continua a dare l'errore sulla chiave2.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    allora controlla cosa contengono le stringhe oppure mettile in sessione nella Sub "ConcatenaChiavi"

  5. #5
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    e.CommandArgument si stampa correttamente con i valori separati.
    Bo!

  6. #6
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    No, in effetti assume solo il primo valore e cioè chiave1;

  7. #7

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ho fatto questo esempio e va:

    codice:
            Dim parti As String()
            Dim frase As String = "italia~spagna~austria~olanda~grecia"
    
            parti = frase.Split("~")
    
            For ind As Integer = 0 To UBound(parti) - 1
                Response.Write(parti(ind) & "
    ")
            Next
    CommandArgument comunque NON è di tipo Stringa ma -Object-, quindi devi effettuare un ToString oppure CSTR(e.CommandArgument)


  9. #9
    Utente di HTML.it L'avatar di jet
    Registrato dal
    Dec 2002
    residenza
    Chieti
    Messaggi
    866
    Dim frase As String = CSTR(e.CommandArgument)
    ...

    non stampa nulla;

    il problema è qui:

    codice:
    Dim CommandArgument="<%# ConcatenaChiavi(DataBinder.Eval(Container, 'DataItem.Chiave1'),DataBinder.Eval(Container, 'DataItem.Chiave2'),DataBinder.Eval(Container, 'DataItem.Chiave3'),DataBinder.Eval(Container, 'DataItem.Chiave4'),DataBinder.Eval(Container, 'DataItem.Chiave5'),DataBinder.Eval(Container, 'DataItem.Chiave6',DataBinder.Eval(Container, 'DataItem.Chiave7')) %>"

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Allora verifica la Sub che concatena le stringhe.

    e poi:

    codice:
    If e.CommandName = "Update" Then
         Dim chiavi As String() = e.CommandArgument.ToString.Split("~")
    
         Dim chiave1 As String = chiavi (0)
         Dim chiave2 As String = chiavi (1) 
         etc
    End if

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.