Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    Ho fatto anche cosi ma non va....al postback la lista è vuota...

    posto il codice nuovo secondo tue indicazioni

    codice:
    If Page.IsPostBack = False Then
                Dim Generale As New ClassGenerali
                Generale.CaricaComboBox(cmbListCategorie, "SELECT id,Categoria,Descrizione FROM CategorieMagliette ORDER BY Categoria ASC;", "Categoria", "id")
    End If
    codice:
    Call conn.EstraiDati(CStr(strSQL), conn.ConnettiCatalogo)
    
                ctrlCombo.Items.Clear()
                ctrlCombo.Items.Insert(0, Resources.ResourceMaster.strSelezionare)
    
                ctrlCombo.DataTextField = strCampo
                ctrlCombo.DataValueField = strValore
    
                ctrlCombo.DataSource = conn.Dati
                ctrlCombo.DataBind()
    e qui il codice markup della DDL

    codice:
    <asp:DropDownList ID="cmbListCategorie" runat="server"
        EnableViewState=true CssClass="ComboBox" Width="100%"
        OnTextChanged="cmbListCategorie_TextChanged"
        OnSelectedIndexChanged="cmbListCategorie_SelectedIndexChanged" 
        AppendDataBoundItems=true  AutoPostBack="true">
    </asp:DropDownList>
    Come mai non va ? sono disperato...ma convinto che è una stupidaggine...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  2. #12
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Per prova, fai una pagina vuota in cui metti semplicemente:

    codice:
    <Asp: DropDownList ID="cmbListCategorie" runat="server" AutoPostBack="true" />
    Poi caricala nel PAGE_LOAD della pagina:
    codice:
    Private Sub Page_Load(...)
       If not is postback then
          CaricaComboCategorie()
       En dif
    End sub
    ...e gestisci il change dell'indice:
    codice:
    Protected Sub cmbListCategorie_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbListCategorie.SelectedIndexChanged
    lblCategoriaSceltaDesc.Text = cmbListCategorie.Text & "PROVA"
    End Sub
    DEVE funzionare altrimenti facciamo causa a Microsoft

  3. #13
    Guarda....quello che divevo è proprio che non passa per niente (ho messo un break point) sull'evento

    cmbListCategorie_SelectedIndexChanged

    e non ne capisco il motivo...

    Comunque ho provato a fare quanto mi hai detto....

    Niente da fare...


    Ultima cosa che potrebbe essere utile...

    Sebbene abbia provato anche con una webform nuova, la mia DDL è posta in un UserControl creato appositamente per gestire un settore del sito...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  4. #14
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    E certo che non funziona... Potevi dirlo prima che è dentro un UserControl

    Devi solo ricordarti che un UserControl non è altro che una classe. Perciò guardati come fanno le classi ad esporre gli eventi all'esterno

    Il codice di sotto è un esempio funzionante, ma lo devi prendere con cautela perchè sono anni che non uso un UserControl e praticamente ho dimenticato tutto

    codice:
    Option Strict On
    
    Partial Class prove_mio_user_control
        Inherits System.Web.UI.UserControl
    
        Public Event SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    
        Public Property DropDownList() As DropDownList
            Get
                Return Me.DropDownList1
            End Get
            Set(ByVal value As DropDownList)
                Me.DropDownList1 = value
            End Set
        End Property
    
        Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            RaiseEvent SelectedIndexChanged(sender, e)
        End Sub
    End Class

    L'utilizzatore mette per esempio due usercontrol

    <uc1:mio_user_control ID="mio_user_control1" runat="server" OnSelectedIndexChanged="mio_user_control1_Selected IndexChanged" />
    <uc1:mio_user_control ID="mio_user_control2" runat="server" />



    nell'evento load metto
    If Not Me.IsPostBack Then
    Me.mio_user_control1.DropDownList.AutoPostBack = True
    End If

    ossia, il primo può fare l'autopostback

    e, nell'evento mio_user_control1_SelectedIndexChanged intercetto l'item selezionato

    Protected Sub mio_user_control1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim ddl As DropDownList = DirectCast(sender, DropDownList)
    PrintLn(ddl.SelectedItem.Text)
    End Sub


    RIPETO: ATTENZIONE ALL'USO
    Pietro

  5. #15
    Beh sicuramente hai ragione ma ho altri Usercontrol e sono riuscito ad usarli senza grossi problemi....il problema sembra più legato alla DDL...

    Cioè mi spiego meglio...

    Il problema non deve essere il fatto che la DDL sta dentro un usercontrol, perchè ho provato come suggerito da djciko a metterla in una nuova pagina vuota e non funziona nemmeno da li...

    Quindi io escluderei che il problema deriva dall'UserControl...anche se a questo punto non ho la più pallida idea di cosa pensare...

    Il codice ve l'ho postato tutto e non mi pare che ci siano grosse cavolate ...
    Quindi forse dovrei cercare nella Pagina che contiene la DDL ???

    E' possibile che qualche proprietà nella MasterPAge influisca su tutto cio' ?
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  6. #16
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Non è esattamente come dici: perchè una cosa è usare il controllo x da solo, una cosa è usarlo in un controllo utente e un'atra cosa è usarlo in controllo utente dentro una masterpage.
    Comunque, visto che servirà pure a me, ti propongo un esempio minimale, ma funzionante.
    La masterpage ha una tabella con due righe e due colonne; a sinistra due Usercontrol con DropDown, a destra due label per il risultato.
    Il primo funziona lato server, il secondo lato client.

    master
    codice:
    <%@ Master Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
        <asp:ContentPlaceHolder id="head" runat="server">
            <script type="text/javascript" src="../js/libreria.js"></script>
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <form id="form1" runat="server">
            <table>
                <tr>
                    <td><asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder></td>
                    <td><asp:ContentPlaceHolder ID="ContentPlaceHolder3" runat="server"></asp:ContentPlaceHolder></td>
                </tr>
                <tr>
                    <td><asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server"></asp:ContentPlaceHolder></td>
                    <td><asp:ContentPlaceHolder ID="ContentPlaceHolder4" runat="server"></asp:ContentPlaceHolder></td>
                </tr>
            </table>
        </form>
    </body>
    </html>
    contenuto
    codice:
    <%@ Page Language="VB" MasterPageFile="~/prove/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="prove_Default" title="Untitled Page" %>
    
    <%@ Register src="mio_user_control.ascx" tagname="mio_user_control" tagprefix="uc1" %>
    
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <uc1:mio_user_control ID="mio_user_control1" runat="server" />
    </asp:Content>
    
    <asp:Content ID="Content2" runat="server" contentplaceholderid="ContentPlaceHolder2">
        <uc1:mio_user_control ID="mio_user_control2" runat="server" />
    </asp:Content>
    
    <asp:Content ID="Content3" runat="server" contentplaceholderid="ContentPlaceHolder3">
        <asp:Label ID="Label1" runat="server" Text="" EnableViewState="false"></asp:Label>
    </asp:Content>
    
    <asp:Content ID="Content4" runat="server" contentplaceholderid="ContentPlaceHolder4">
        <asp:Label ID="Label2" runat="server" Text="" EnableViewState="false"></asp:Label>
    </asp:Content>
    contenuto codice
    codice:
    Option Strict On
    
    Partial Class prove_Default
        Inherits System.Web.UI.Page
    
        Protected Sub mio_user_control1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mio_user_control1.SelectedIndexChanged
            Dim ddl As DropDownList = DirectCast(sender, DropDownList)
            Me.Label1.Text = ddl.SelectedItem.Text
    
        End Sub
    
        Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
            Me.mio_user_control1.DropDownList.AutoPostBack = True
    
            Me.mio_user_control2.DropDownList.Attributes.Add("onchange", String.Format("$(""{0}"").innerHTML = testo_lista_selezionato($(""{1}""));", Me.Label2.ClientID, Me.mio_user_control2.DropDownList.ClientID))
    
        End Sub
    
    End Class
    user control
    codice:
    <%@ Control Language="VB" AutoEventWireup="false" CodeFile="mio_user_control.ascx.vb" Inherits="prove_mio_user_control" %>
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Value="0" Text=""/>
        <asp:ListItem Value="1" Text="Stefano"/>
        <asp:ListItem Value="2" Text="Carlo"/>
        <asp:ListItem Value="3" Text="Nicola"/>
    </asp:DropDownList>
    user control codice
    codice:
    Option Strict On
    
    Partial Class prove_mio_user_control
        Inherits System.Web.UI.UserControl
    
        Public Event SelectedIndexChanged As EventHandler
    
        Public Property DropDownList() As DropDownList
            Get
                Return Me.DropDownList1
            End Get
            Set(ByVal value As DropDownList)
                Me.DropDownList1 = value
            End Set
        End Property
    
        Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            RaiseEvent SelectedIndexChanged(sender, e)
        End Sub
    End Class
    Pietro

  7. #17
    Pietro sei stato gentilissimo ma forse per me che sono alle prime armi con .NET non è proprio facile capire il ragionamento che sta alla base del tuo codice...

    Dico una cosa, non vorrei che fosse anche per quello che sbaglio...

    Anche l'UserControl che utilizzo ha un evento Page_Load

    Io ho usato questo evento per gestire alcuni controlli che stanno dentro l'usercontrol, senza avere problemi peraltro (un Repeater, diverse label, bottoni ecc. tutti gestiti da questo evento)

    Tu mi stai forse dicendo di gestire nel LOAD della pagina principale e non dell'usercontrol ?
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  8. #18
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da RAVALON
    Tu mi stai forse dicendo di gestire nel LOAD della pagina principale e non dell'usercontrol ?
    No, il Raise dell'evento te l'aveva fatto per farti capire come si gestisce un evento che accade all'interno di uno UC dal mondo esterno (cioe' la pagina che lo ospita).

    prova questo:
    ASPX:
    codice:
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="drop.aspx.vb" Inherits="studio.drop1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<HEAD>
    		<title>drop</title>
    		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    		<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    	</HEAD>
    	<body MS_POSITIONING="GridLayout">
    		<form id="Form1" method="post" runat="server">
    			<asp: DropDownList ID="dd" Runat="server" DataTextField=nome AutoPostBack=True></asp:DropDownList>
    		</form>
    	</body>
    </HTML>
    codice:
    Public Class drop1
        Inherits System.Web.UI.Page
    
        Protected WithEvents dd As System.Web.UI.WebControls.DropDownList
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If Not Page.IsPostBack Then
                Dim ds As New DataSet
                ds.ReadXml(Server.MapPath("dd.xml"))
                dd.DataSource = ds.Tables(0)
                dd.DataBind()
            End If
        End Sub
    
        Private Sub dd_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dd.SelectedIndexChanged
            Response.Write("Hai scelto un testo diverso nella DropDown")
        End Sub
    End Class
    codice:
    <?xml version="1.0" encoding="utf-8" ?>
    <utente>
    	<dati>
    	<nome>djciko</nome>
    	</dati>
    	<dati>
    	<nome>pietro</nome>
    	</dati>
    	<dati>
    	<nome>ravalon</nome>
    	</dati>
            <dati>
    	<nome>altro</nome>
    	</dati>
    </utente>
    A me funziona.

  9. #19
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    non ho mai usato le MasterPage. Nell'esempio ho provato a inizializzare il controllo utente nell'evento load. Visto che non andava ho provato nell'evento Page_Init. E assicuro che l'esempio funziona.

    ps. Quando debbo affrontare un problema, costruisco sempre una pagina prototìpo semplice. Se funziona estrapolo il risultato al caso reale. In questo caso sono andato sul semplice:

    un controllo utente con un DropDown che espone all'esterno il controllo dropdown con l'evento SelectedIndexChanged

    Una pagina master

    Una pagina content

    di più, non so
    Pietro

  10. #20
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Un esempio completo, una Drop in uno UC:

    Pagina ASPX
    codice:
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="EsempioDropInUC.aspx.vb" Inherits="studio.EsempioDropInUC"%>
    <%@ Register TagPrefix="UCS" TagName="DropContainer" Src="DropContainer.ascx" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<HEAD>
    		<title>EsempioDropInUC</title>
    	</HEAD>
    	<body MS_POSITIONING="GridLayout">
    		<form id="Form1" method="post" runat="server">
    			<UCS: DropContainer id="UCDropContainer" runat="server"></UCS: DropContainer>
    		</form>
    	</body>
    </HTML>
    Pagina ASPX.VB
    codice:
    Public Class EsempioDropInUC
        Inherits System.Web.UI.Page
    
        Protected WithEvents UCDropContainer As DropContainer
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Inserire qui il codice utente necessario per inizializzare la pagina
        End Sub
    
        Private Sub UCDropContainer_TestoCambiato(ByVal s As Object, ByVal e As System.EventArgs) Handles UCDropContainer.TestoCambiato
            Response.Write("Dalla DROPDOWN nello UC hai scelto il testo: " & UCDropContainer.TestoDD.ToString)
        End Sub
    End Class
    UserControl ASCX
    codice:
    <%@ Control Language="vb" AutoEventWireup="false" Codebehind="DropContainer.ascx.vb" Inherits="studio.DropContainer" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
    <asp: DropDownList Runat="server" ID="ddPersone" DataTextField="nome" AutoPostBack="True"></asp: DropDownList>
    CodeBehind dello UC:
    codice:
    Public Class DropContainer
        Inherits System.Web.UI.UserControl
    
        Public WithEvents ddPersone As System.Web.UI.WebControls.DropDownList
        Public Event TestoCambiato(ByVal s As Object, ByVal e As EventArgs)
    
        Public ReadOnly Property TestoDD() As String
            Get
                Return ddPersone.SelectedItem.Text.ToString
            End Get
        End Property
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If Not Page.IsPostBack Then
                Dim ds As New DataSet
                ds.ReadXml(Server.MapPath("DD.xml"))
                ddPersone.DataSource = ds.Tables(0)
                ddPersone.DataBind()
            End If
        End Sub
    
        Private Sub ddPersone_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddPersone.SelectedIndexChanged
            RaiseEvent TestoCambiato(Me, e)
        End Sub
    End Class
    Il file XML e' lo stesso del post precedente. L'ho provato e funziona....

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.