Question : La boîte de RadCombo perd des articles sur le postback.

Nous avons RadComboBoxes connexe par 3 qui filtrent une grille suivant les indications de l'image et basée sur l'exemple suivant ; le rel= " nofollow " de " _blank " de target= de " http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx " de href= de tâche du spnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

The de http://demos.telerik.com/a en second lieu du code est censé pour filtrer une grille d'un combobox pour produire le résultat affiché dans cet échantillon ;  rel= " nofollow " de " _blank " de target= de " http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx?product=grid " de href= de spnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx de http://demos.telerik.com/a ? le product=grid

A RadGrid a été ajouté à la page et la valeur choisie du 3ème combobox est employée pour peupler la grille.  Le problème est que les comboboxes perdent leur valeur quand le postback se produit et la grille est liée.  le

We ont essayé d'employer des panneaux de mise à jour et stocker des valeurs choisies dans la session est-ce que mais ceci ne fait pas work.

Is là une addition de javscript qui doit agir l'un sur l'autre entre le 3ème combobox et la grille ? le résultat final du

The a besoin de toutes les valeurs de combobox pour persister et l'utilisateur DOIT pouvoir choisir parmi les articles filtrés dans RadComboBox3 (l'IE choisissent une autre leçon filtrée du groupe de leçon (RadComboBox2). le

We n'emploient pas le directeur de Telerik AJAX car nous avons le directeur de manuscrit de trousse à outils de commande d'AJAX courir sur le MasterPage. nom de fichier " " de >

1 " de >
using " de
 0 (de COMPTE (Xtrain.XTV7_2_Videos.XTV7_Videos_ID)) », raccordement) ;
        DataTable décollement = nouveau DataTable () ;
        adapteur. Suffisance (décollement) ;

        RadComboBox1.DataTextField = « XTV7_Categories_Name » ;
        RadComboBox1.DataValueField = « XTV7_Categories_ID » ;
        RadComboBox1.DataSource = décollement ;
        RadComboBox1.DataBind () ;
        //insert le premier article
        RadComboBox1.Items.Insert (0, nouveau RadComboBoxItem (« - choisir une catégorie - »));
    }

    LoadCountries vide protégé (continentID de corde)
    {
        Raccordement de SqlConnection = nouveau SqlConnection (
        ConfigurationManager.ConnectionStrings [« XtrainConnectionString »] .ConnectionString) ;

        //select un pays basé sur le continentID
        Adapteur de SqlDataAdapter = nouveau SqlDataAdapter (« XTV7_Categories_Sub_ID CHOISI, XTV7_Categories_Sub_Name, XTV7_Categories_Sub_Available de Xtrain.XTV7_1_Categories_Sub OÙ (XTV7_Categories_ID = @XTV7_Categories_ID) ET (XTV7_Categories_Sub_Available = 1) », raccordement) ;
        adapter.SelectCommand.Parameters.AddWithValue (« @XTV7_Categories_ID », continentID) ;

        DataTable décollement = nouveau DataTable () ;
        adapteur. Suffisance (décollement) ;

        RadComboBox2.DataTextField = « XTV7_Categories_Sub_Name » ;
        RadComboBox2.DataValueField = « XTV7_Categories_Sub_ID » ;
        RadComboBox2.DataSource = décollement ;
        RadComboBox2.DataBind () ;
    }

    LoadCities vide protégé (countryID de corde)
    {
        Raccordement de SqlConnection = nouveau SqlConnection (
        ConfigurationManager.ConnectionStrings [« XtrainConnectionString »] .ConnectionString) ;

        //select une ville basée sur le countryID
        Adapteur de SqlDataAdapter = nouveau SqlDataAdapter (« XTV7_Videos_ID CHOISI, XTV7_Categories_Sub_ID, XTV7_Videos_Title de Xtrain.XTV7_2_Videos OÙ (XTV7_Categories_Sub_ID=@XTV7_Categories_Sub_ID) ET (XTV7_VideoAvailable = 1) ET (PAS (XTV7_Videos_Title EST NUL)) », raccordement) ;
        adapter.SelectCommand.Parameters.AddWithValue (« @XTV7_Categories_Sub_ID », countryID) ;

        DataTable décollement = nouveau DataTable () ;
        adapteur. Suffisance (décollement) ;

        RadComboBox3.DataTextField = « XTV7_Videos_Title » ;
        RadComboBox3.DataValueField = « XTV7_Videos_ID » ;
        RadComboBox3.DataSource = décollement ;
        RadComboBox3.DataBind () ;
    }
    #endregion

    #region RadComboBox SelectedIndex changé
    RadComboBox2_SelectedIndexChanged vide protégé (objet o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        //BindData (Geek.XTV7_Categories_Sub_ID.ToString ());
    }

    RadComboBox3_SelectedIndexChanged vide protégé (objet o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        BindData (Geek.XTV7_Videos_ID.ToString ());
    }

    #endregion

    Grippage RadGrid de #region avec les signaux vidéo
    BindData vide protégé (vidéo de corde)
    {

        corde SQL = "" ;
        SQL +=
            « XTV7_Videos_ID CHOISI, XTV7_Categories_Sub_ID, XTV7_Videos_Title de Xtrain.XTV7_2_Videos OÙ (XTV7_Videos_ID= » +
            Vidéo + ") ET (XTV7_VideoAvailable = 1) ET (PAS (XTV7_Videos_Title EST NUL)) » ;

        DataTable décollement = _data.GetDataTable (SQL) ;
        si (décollement. Rows.Count > 0)
        {
            RadGrid1.DataSource = décollement ;
           RadGrid1.DataBind () ;
        }
        autrement
        {
            RadGrid1.DataSource = nulle ;
            RadGrid1.DataBind () ;
        }
    }
    #endregion

    Articles demandés par RadComboBox de #region
    RadComboBox1_ItemsRequested vide protégé (objet o, RadComboBoxItemsRequestedEventArgs e)
    {
        LoadContinents () ;
    }

    RadComboBox2_ItemsRequested vide protégé (objet o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text est le premier paramètre de la méthode de requestItems
        // a appelé dans la méthode de LoadCountries
        LoadCountries (e.Text) ;
    }

    RadComboBox3_ItemsRequested vide protégé (objet o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text est le premier paramètre de la méthode de requestItems
        // a appelé dans la méthode de LoadCities
        LoadCities (e.Text) ;
    }
    #endregion

    Image de grippage de #region à la valeur de grille (indépendante de l'issue)
    corde protégée GetImageUrl (article d'international)
    {
        si (article. Égales (0))
        {
            renvoyer « ~/App_Themes/XGIS/images/LessonLevels/Beginner.png » ;
        }
        autrement si (article. Égales (1))
        {
            renvoyer « ~/App_Themes/XGIS/images/LessonLevels/Intermediate.png » ;
        }
        autrement si (article. Égales (2))
        {
            renvoyer « ~/App_Themes/XGIS/images/LessonLevels/Advanced.png » ;
        }
        article d'autre. Égales ("") ;
        {
            renvoyer « ~/App_Themes/XGIS/images/LessonLevels/clear.gif » ;
        }
    }
    #endregion
  
}
nom de fichier " " de >
le " le " de >
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
"" " de " codeSnippet641781 " d'id= de
<%@ de class=
    AutoEventWireup= CodeFile= " vrai " " xtv_VideoSelector.aspx.cs " Inherits= " Applications_xTrain_Controls_xtv_VideoSelector " %>

Registre Assembly= " Telerik.Web.UI " TagPrefix= " telerik " Namespace= " Telerik.Web.UI " %> de <%@

    id= " qsfexWrapper " de 
Category :
Group d'AssociatedControlID= " RadComboBox2 " de " serveur " de runat= de l'étiquette ID= " Label2 " :
Lesson d'AssociatedControlID= " RadComboBox3 " de " serveur " de runat= de l'étiquette ID= " Label3 " :

type= de
class= de

Réponse : La boîte de RadCombo perd des articles sur le postback.

Bien, vous allez avoir un certain comportement inattendu si vous employez () l'événement *_SelectedIndexChanged pour placer la valeur d'une commande. Pour le moins vous pouvez s'attendre à des tours inutiles par le code qui peut produire différentes valeurs que vous prévoyez réellement. En outre, les pratiques générales sont d'employer ViewState () pour stocker des valeurs si vous ne laissez pas une page, alors emploient la session () pour stocker les valeurs qui doivent être partagées entre les pages. Donner ceci, j'essayerais quelque chose comme le suivant… et noter veuillez ceci est complètement non essayé. Je n'ai pas les commandes de Telerik pour vérifier ceci, mais ce cadre général fera ce que vous recherchez (peut exiger tordre à perfectionner)…
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
CATÉGORIE privée de corde de const = « CategoryId » ;
SOUS-CATÉGORIE privée de corde de const = « SubCategoryId » ;
VIDÉO privée de corde de const = « VideoId » ;

Page_Load vide protégé (expéditeur d'objet, EventArgs e)
{
	si retour (d'IsPostBack) ;
	
	InitializeElements () ;
	LoadContinents () ;
	PopulateControls () ;
}

InitializeElements vide statique privé ()
{
	// sont ces véritables objets de session ? En ce moment ils semblent être des variables simples.
	Geek.XTV7_Categories_ID = corde. Vide ;
	Geek.XTV7_Categories_Sub_ID = corde. Vide ;
	Geek.XTV7_Videos_ID = corde. Vide ;
	
	ViewState.Remove (CATÉGORIE) ;
	ViewState.Remove (SOUS-CATÉGORIE) ;
	ViewState.Remove (VIDÉO) ;
	
    RadGrid1.Visible = faux ;
}

PopulateControls vide privé ()
{
	RadGrid1.Visible = faux ;
	
	si (ViewState [CATÉGORIE] ! = && nul ! string.IsNullOrEmpty ((corde) ViewState [CATÉGORIE]))
	{
		variété tempCategory = (corde) ViewState [CATÉGORIE] ;
        LoadCountries (tempCategory) ;
        Label4.Text = tempCategory ;
		
		variété tempC1 = RadComboBox1.Items.FindByValue (tempCategory) ;
		si (tempC1 ! = la nulle) tempC1.Selected = rectifient ;
	}
	
	si (ViewState [SOUS-CATÉGORIE] ! = && nul ! string.IsNullOrEmpty ((corde) ViewState [SOUS-CATÉGORIE]))
	{
		variété tempSubCategory = (corde) ViewState [SOUS-CATÉGORIE] ;
        LoadCities ((tempSubCategory) ;
        Label5.Text = tempSubCategory ;
		
		variété tempC2 = RadComboBox2.Items.FindByValue (tempSubCategory) ;
		si (tempC2 ! = la nulle) tempC2.Selected = rectifient ;
	}
	
	si (ViewState [VIDÉO] ! = && nul ! string.IsNullOrEmpty ((corde) ViewState [VIDÉO]))
	{
		tempVideo de variété = (corde) ViewState [VIDÉO] ;
        BindData (tempVideo) ;
        Label6.Text = tempVideo ;
		
		variété tempC3 = RadComboBox3.Items.FindByValue (tempVideo) ;
		si (tempC3 ! = la nulle) tempC3.Selected = rectifient ;
	}
}

BindData vide privé (videoId de corde)
{
	// cette ligne devrait être ajouté avant votre RadGrid1.DataBind ()
	RadGrid1.Visible = rectifient ;
		
	//keep votre logique existante, mais ajoutent le bloc suivant quelque part dans cette méthode…
	Variables de session de #region
	Geek.XTV7_Categories_ID = (corde) ViewState [CATÉGORIE] ;
	Geek.XTV7_Categories_Sub_ID = (corde) ViewState [SOUS-CATÉGORIE] ;
	Geek.XTV7_Videos_ID = (corde) ViewState [VIDÉO] ;
	#endregion
}

Le #region RadComboBox SelectedIndex a changé
RadComboBox1_SelectedIndexChanged vide protégé (objet o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (CATÉGORIE) ;
	ViewState.Remove (SOUS-CATÉGORIE) ;
	ViewState.Remove (VIDÉO) ;
	
	ViewState.Add (CATÉGORIE, RadComboBox1.SelectedValue.Trim ());
	PopulateControls () ;
}

RadComboBox2_SelectedIndexChanged vide protégé (objet o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (SOUS-CATÉGORIE) ;
	ViewState.Remove (VIDÉO) ;
	
	ViewState.Add (SOUS-CATÉGORIE, RadComboBox2.SelectedValue.Trim ());
	PopulateControls () ;
}

RadComboBox3_SelectedIndexChanged vide protégé (objet o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (VIDÉO) ;
	
	ViewState.Add (VIDÉO, RadComboBox3.SelectedValue.Trim ());
	PopulateControls () ;
}
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us