Pergunta : A caixa de RadCombo perde artigos no postback.

Nós temos RadComboBoxes relativo 3 que filtram uma grade segundo as indicações da imagem e baseada no seguinte exemplo; o rel= " nofollow " do " _blank " " do target= de " http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx do href= do tarefa do spnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

The segundo de http://demos.telerik.com/a do código é significado filtrar uma grade de um combobox para produzir o resultado mostrado nesta amostra;  rel= " nofollow " do " _blank " " do target= de " http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx?product=grid do href= do spnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx de http://demos.telerik.com/a? o product=grid

A RadGrid foi adicionado à página e o valor selecionado do ó combobox é usado para povoar a grade.  O problema é que os comboboxes perdem seu valor quando o postback ocorre e a grade está limitada.  o

We tentou usar os painéis da atualização e a armazenagem de valores selecionados na sessão mas este não faz work.

Is lá uma adição do javscript que precise de interagir entre o ó combobox e a grade? o resultado final do

The precisa todos os valores do combobox de persistir e o usuário DEVE poder selecionar dos artigos filtrados em RadComboBox3 (o IE escolhe uma outra lição filtrada do grupo da lição (RadComboBox2). o

We não está usando o gerente de Telerik AJAX porque nós temos o gerente do certificado do conjunto de ferramentas do controle de AJAX funcionar no MasterPage. nome de arquivo " vazio " >

GridFilteredbyComboSample.jpg " fileSize " > (104 KB) Javascript " do href= o " dos " attachmentDetails do class= de (tipo de lima detalhes) largura do style= >The action
1 >
do class= " r de " >
using codeBody do " prettyprint " " do class= do id= " codeSnippet641780 do >
 0 da CONTAGEM (Xtrain.XTV7_2_Videos.XTV7_Videos_ID))”, a conexão);
        DataTable descolamento = DataTable novo ();
        adaptador. Suficiência (descolamento);

        RadComboBox1.DataTextField = “XTV7_Categories_Name”;
        RadComboBox1.DataValueField = “XTV7_Categories_ID”;
        RadComboBox1.DataSource = descolamento;
        RadComboBox1.DataBind ();
        //insert o primeiro artigo
        RadComboBox1.Items.Insert (0, RadComboBoxItem novo (“- selecionar uma categoria -”));
    }

    LoadCountries vago protegido (continentID da corda)
    {
        Conexão de SqlConnection = SqlConnection novo (
        ConfigurationManager.ConnectionStrings [“XtrainConnectionString”] .ConnectionString);

        //select um país baseado no continentID
        Adaptador de SqlDataAdapter = SqlDataAdapter novo (“XTV7_Categories_Sub_ID SELETO, XTV7_Categories_Sub_Name, XTV7_Categories_Sub_Available de Xtrain.XTV7_1_Categories_Sub ONDE (XTV7_Categories_ID = @XTV7_Categories_ID) E (XTV7_Categories_Sub_Available = 1)”, conexão);
        adapter.SelectCommand.Parameters.AddWithValue (“@XTV7_Categories_ID”, continentID);

        DataTable descolamento = DataTable novo ();
        adaptador. Suficiência (descolamento);

        RadComboBox2.DataTextField = “XTV7_Categories_Sub_Name”;
        RadComboBox2.DataValueField = “XTV7_Categories_Sub_ID”;
        RadComboBox2.DataSource = descolamento;
        RadComboBox2.DataBind ();
    }

    LoadCities vago protegido (countryID da corda)
    {
        Conexão de SqlConnection = SqlConnection novo (
        ConfigurationManager.ConnectionStrings [“XtrainConnectionString”] .ConnectionString);

        //select uma cidade baseada no countryID
        Adaptador de SqlDataAdapter = SqlDataAdapter novo (“XTV7_Videos_ID SELETO, XTV7_Categories_Sub_ID, XTV7_Videos_Title de Xtrain.XTV7_2_Videos ONDE (XTV7_Categories_Sub_ID=@XTV7_Categories_Sub_ID) E (XTV7_VideoAvailable = 1) E (NÃO (XTV7_Videos_Title É NULO))”, conexão);
        adapter.SelectCommand.Parameters.AddWithValue (“@XTV7_Categories_Sub_ID”, countryID);

        DataTable descolamento = DataTable novo ();
        adaptador. Suficiência (descolamento);

        RadComboBox3.DataTextField = “XTV7_Videos_Title”;
        RadComboBox3.DataValueField = “XTV7_Videos_ID”;
        RadComboBox3.DataSource = descolamento;
        RadComboBox3.DataBind ();
    }
    #endregion

    #region RadComboBox SelectedIndex mudado
    RadComboBox2_SelectedIndexChanged vago protegido (objeto o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        //BindData (Geek.XTV7_Categories_Sub_ID.ToString ());
    }

    RadComboBox3_SelectedIndexChanged vago protegido (objeto o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        BindData (Geek.XTV7_Videos_ID.ToString ());
    }

    #endregion

    Ligamento RadGrid do #region com dados video
    BindData vago protegido (vídeo da corda)
    {

        corda sql = "";
        sql +=
            “XTV7_Videos_ID SELETO, XTV7_Categories_Sub_ID, XTV7_Videos_Title de Xtrain.XTV7_2_Videos ONDE (XTV7_Videos_ID=” +
            Vídeo + ") E (XTV7_VideoAvailable = 1) E (NÃO (XTV7_Videos_Title É NULO))”;

        DataTable descolamento = _data.GetDataTable (sql);
        se (descolamento. Rows.Count > 0)
        {
            RadGrid1.DataSource = descolamento;
           RadGrid1.DataBind ();
        }
        mais
        {
            RadGrid1.DataSource = zero;
            RadGrid1.DataBind ();
        }
    }
    #endregion

    Artigos pedidos RadComboBox do #region
    RadComboBox1_ItemsRequested vago protegido (objeto o, RadComboBoxItemsRequestedEventArgs e)
    {
        LoadContinents ();
    }

    RadComboBox2_ItemsRequested vago protegido (objeto o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text é o primeiro parâmetro do método dos requestItems
        // invocou no método de LoadCountries
        LoadCountries (e.Text);
    }

    RadComboBox3_ItemsRequested vago protegido (objeto o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text é o primeiro parâmetro do método dos requestItems
        // invocou no método de LoadCities
        LoadCities (e.Text);
    }
    #endregion

    Imagem do ligamento do #region a valor da grade (não relacionado à edição)
    corda protegida GetImageUrl (artigo do int)
    {
        se (artigo. Iguais (0))
        {
            retornar “~/App_Themes/XGIS/images/LessonLevels/Beginner.png”;
        }
        mais se (artigo. Iguais (1))
        {
            retornar “~/App_Themes/XGIS/images/LessonLevels/Intermediate.png”;
        }
        mais se (artigo. Iguais (2))
        {
            retornar “~/App_Themes/XGIS/images/LessonLevels/Advanced.png”;
        }
        artigo outro. Iguais ("");
        {
            retornar “~/App_Themes/XGIS/images/LessonLevels/clear.gif”;
        }
    }
    #endregion
  
}
nome de arquivo " vazio " >
RadCombo-LostStatePostGridFilter.jpg " fileSize " > (85 KB) Javascript " do href= o " dos " attachmentDetails do class= de (tipo de lima detalhes) largura do style= >The com: 550px; altura: 194px; alt= " de http://filedb.experts-exchange.com/incoming/2010/05_w20/t305796/RadCombo-LostStatePostGridFilter.jpg o " do” src= class= " de 305796 "/>
>
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
"" notpretty Language= " C# " MasterPageFile= " ~/App_Master/SingleColumnFixed.master " de Title= da página de ><%@ " do class= " de " codeSnippet641781 do id= do

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

    id= " qsfexWrapper " do 
Category:
Group " de AssociatedControlID= " RadComboBox2 " do " usuário " do runat= da etiqueta ID= " Label2:
Lesson " de AssociatedControlID= " RadComboBox3 " do " usuário " do runat= da etiqueta ID= " Label3:

type= " texto/Javascript " do
class= do

Resposta : A caixa de RadCombo perde artigos no postback.

Bem, você está indo ter algum comportamento inesperado se você está usando () o evento *_SelectedIndexChanged para ajustar o valor de um controle. Pelo menos você pode esperar roundtrips desnecessários com o código que pode produzir valores diferentes do que você está esperando realmente. Também, a melhor prática geral é usar ViewState () para armazenar valores se você não está deixando uma página, a seguir usa a sessão () para armazenar os valores que precisam de ser compartilhados entre páginas. Dar isto, eu tentaria algo como o seguinte… e anotar por favor isto é completamente não experimentada. Eu não tenho os controles de Telerik para verific isto, mas esta estrutura geral fará o que você está procurando (pode exigir pouco tweaking a aperfeiçoar)…
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:
CATEGORIA confidencial da corda do const = “CategoryId”;
SUBCATEGORIA confidencial da corda do const = “SubCategoryId”;
VÍDEO confidencial da corda do const = “VideoId”;

Page_Load vago protegido (remetente do objeto, EventArgs e)
{
	se retorno (de IsPostBack);
	
	InitializeElements ();
	LoadContinents ();
	PopulateControls ();
}

InitializeElements vago de estática confidencial ()
{
	// é estes objetos de sessão verdadeiros? Agora parecem ser variáveis simples.
	Geek.XTV7_Categories_ID = corda. Vazio;
	Geek.XTV7_Categories_Sub_ID = corda. Vazio;
	Geek.XTV7_Videos_ID = corda. Vazio;
	
	ViewState.Remove (CATEGORIA);
	ViewState.Remove (SUBCATEGORIA);
	ViewState.Remove (VÍDEO);
	
    RadGrid1.Visible = falso;
}

PopulateControls vago confidencial ()
{
	RadGrid1.Visible = falso;
	
	se (ViewState [CATEGORIA]! = && nulo! string.IsNullOrEmpty ((corda) ViewState [CATEGORIA]))
	{
		var tempCategory = (corda) ViewState [CATEGORIA];
        LoadCountries (tempCategory);
        Label4.Text = tempCategory;
		
		var tempC1 = RadComboBox1.Items.FindByValue (tempCategory);
		se (tempC1! = o zero) tempC1.Selected = retifica;
	}
	
	se (ViewState [SUBCATEGORIA]! = && nulo! string.IsNullOrEmpty ((corda) ViewState [SUBCATEGORIA]))
	{
		var tempSubCategory = (corda) ViewState [SUBCATEGORIA];
        LoadCities ((tempSubCategory);
        Label5.Text = tempSubCategory;
		
		var tempC2 = RadComboBox2.Items.FindByValue (tempSubCategory);
		se (tempC2! = o zero) tempC2.Selected = retifica;
	}
	
	se (ViewState [VÍDEO]! = && nulo! string.IsNullOrEmpty ((corda) ViewState [VÍDEO]))
	{
		tempVideo do var = (corda) ViewState [VÍDEO];
        BindData (tempVideo);
        Label6.Text = tempVideo;
		
		var tempC3 = RadComboBox3.Items.FindByValue (tempVideo);
		se (tempC3! = o zero) tempC3.Selected = retifica;
	}
}

BindData vago confidencial (videoId da corda)
{
	// esta linha deve ser adicionado antes de seu RadGrid1.DataBind ()
	RadGrid1.Visible = retificam;
		
	//keep sua lógica existente, mas adiciona o seguinte bloco em algum lugar neste método…
	Variáveis da sessão do #region
	Geek.XTV7_Categories_ID = (corda) ViewState [CATEGORIA];
	Geek.XTV7_Categories_Sub_ID = (corda) ViewState [SUBCATEGORIA];
	Geek.XTV7_Videos_ID = (corda) ViewState [VÍDEO];
	#endregion
}

#region RadComboBox SelectedIndex mudado
RadComboBox1_SelectedIndexChanged vago protegido (objeto o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (CATEGORIA);
	ViewState.Remove (SUBCATEGORIA);
	ViewState.Remove (VÍDEO);
	
	ViewState.Add (CATEGORIA, RadComboBox1.SelectedValue.Trim ());
	PopulateControls ();
}

RadComboBox2_SelectedIndexChanged vago protegido (objeto o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (SUBCATEGORIA);
	ViewState.Remove (VÍDEO);
	
	ViewState.Add (SUBCATEGORIA, RadComboBox2.SelectedValue.Trim ());
	PopulateControls ();
}

RadComboBox3_SelectedIndexChanged vago protegido (objeto o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (VÍDEO);
	
	ViewState.Add (VÍDEO, RadComboBox3.SelectedValue.Trim ());
	PopulateControls ();
}
Outras soluções  
 
programming4us programming4us