Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    Dropdownlist con funzione

    Salve ho una domanda

    Spero di riuscire a spiegarmi:

    ho agganciato una funzione a questa label

    <asp:label ID="data_" runat="server" font-bold="true" Text='<%#data1(container.dataitem("datanum")& " ")%>'/>



    adesso, questa stessa funzione vorrei agganciarla ad un dropdownlist che a sua volta prende dei dati da un db

    <asp:dropdownlist id="anno_scolastico" runat="server" Font-Name="verdana" ForeColor="#0000FF" Font-Size="13" OnSelectedIndexChanged="prima_sel" AutoPostBack="true" AppendDataBoundItems="true">
    <asp:ListItem Value="">---</asp:ListItem></aspropDownList


    come devo fare?
    grazie

    p.s.
    la funzione è questa

    function data1(ByVal X as string)

    dim datag as string=right(Trim( X ), 2)

    dim datam as string=mid(Trim( X ), 5, 2)
    dim dataa as string=left(Trim( X ), 4)
    dim data2 as string=datag & "/" & datam & "/" & dataa

    return replace(trim(X),Trim( X ),data2)


    end function



    questa funzione mi consente di modificare una data cosi 20180702 in questo modo 02/07/2018
    infatti la dropdownlist mostra delle date con questo formato 20180702-20180701 ecc...
    vorrei che quando mostra queste date, venisse agganciata la funzione in modo che le mostra nel modo corretto
    grazie
    victor
    ----------------------

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    dovresti farlo a monte, dove prendi i dati dal db, prima di fare il databind...
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183
    mi faresti vedere come si fa?
    grazie

    ecco come prendo i dati

    'seleziono il primo drop attraverso la colonna anno scolastico dim objcmd as new oledbdataadapter ("select distinct datanum from mov where cosa_fai = 'paghe_staff' order by datanum desc ", objconn)
    dim ds as dataset=new dataset()
    objcmd.fill (ds,"intervalli")

    Dim strSQL as String = "select distinct datanum from mov where cosa_fai = 'paghe_staff' order by datanum desc "


    Dim objCmd2 as OleDbCommand
    objConn.Open()
    objCmd2 = new OleDbCommand(strSQL, objConn)
    dim MyCommand As New OledbDataAdapter(strSQL,objConn)
    ds = new DataSet()
    MyCommand.Fill(ds, "datanum")
    objConn.Close
    anno_scolastico.DataTextField="datanum" ' campo visualizzato
    anno_scolastico.DataValueField="datanum" ' campo di valore
    anno_scolastico.DataBind()
    anno_scolastico.DataSource=ds
    anno_scolastico.DataMember="datanum"
    anno_scolastico.DataTextField="datanum" ' campo visualizzato
    anno_scolastico.DataValueField="datanum" ' campo di valore
    anno_scolastico.DataBind()


    '''''''''''''''''''''''''
    victor
    ----------------------

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    farlo dalla QUERY (in T-SQL) è la cosa piu' semplice.

    comunque, se invece di fare il Databind diretto degli item fai un ciclo nel Dataset e crei gli item uno per uno (facendo un new Item ad ogni giro), puoi intervenire lato server su quel valore della data. Ti posto un esempio fatto con un Datareader, mettendo anche A MANO la posizione dell'item nella DropDown:


    codice:
    try
    {
        rdr = db.GetDataReader(); // prende i dati
    
        if (rdr.HasRows)
        {
            int indicielementi = 0;
    
            // Aggiunta ITEMS 
            while (rdr.Read())
            {
                ListItem itemdrop = new ListItem();
                
                itemdrop.Text = (string)rdr[nomecampotext];
                itemdrop.Value = (string)rdr[nomecampovalue];
                            
                dropdown.Items.Insert(indicielementi, itemdrop);
                indicielementi += 1;
            }        
            rdr.Close();
        }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183
    ho provato cosi ma ovviamente mi da errore
    me lo coreggi? grazie

    dim objcmd as new oledbdataadapter ("select distinct datanum from mov where cosa_fai = 'paghe_staff' order by datanum desc ", objconn) dim ds as dataset=new dataset()
    objcmd.fill (ds,"intervalli")

    try
    {
    ds = db.GetDataReader(); // prende i dati


    if (ds.HasRows)
    {
    int indicielementi = 0;


    // Aggiunta ITEMS
    while (ds.Read())
    {
    ListItem itemdrop = new ListItem();

    itemdrop.Text = (string)ds[anno_scolastico];
    itemdrop.Value = (string)ds[anno_scolastico];

    dropdown.Items.Insert(indicielementi, itemdrop);
    indicielementi += 1;
    }
    ds.Close();
    }
    end if
    }
    end try
    '''''''''''''''''''''''''
    victor
    ----------------------

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    ma tu stai usando un Dataset che c'entra il mio metodo (postato per fare un esempio) ?

    la parte principale era il ciclo in cui creo i ListItem della drop....era per farti vedere che ne puoi manipolare il valore (ti ripeto, e' basato su un SQLDataReader, tu hai un DATASET)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183
    non è che mi faresti vedere come faresti tu?
    grazie
    victor
    ----------------------

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    dal tuo dataset "ds":

    ASPX
    codice:
    <asp:DropDownList ID="anno_scolastico" runat="server" OnDataBinding="anno_scolastico_DataBinding"></asp:DropDownList>

    C#
    codice:
    protected void anno_scolastico_DataBinding(object sender, EventArgs e)
    {
    	// tuo dataset....  ds
    
    
    	DataTable dt = ds.Tables[0];
    
    
    	foreach (System.Data.DataRow riga in dt.Rows)
    	{
    		DateTime d = new DateTime();
    		d = (DateTime)riga["datanum"];
    
    
    		string giorno = d.Day.ToString();
    		string mese = d.Month.ToString();
    		string anno = d.Year.ToString();
    		string dataOut = giorno + "/" + mese + "/" + anno;
    
    
    		System.Web.UI.WebControls.ListItem elemento = new System.Web.UI.WebControls.ListItem();
    		elemento.Text = dataOut;
    		elemento.Value = dataOut;
    
    
    		dd.Items.Add(elemento);
    	}
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183
    io uso vb script
    victor
    ----------------------

  10. #10

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 © 2024 vBulletin Solutions, Inc. All rights reserved.