Вопрос : Коробка RadCombo теряет детали на postback.

Мы имеем 3 отнесенное RadComboBoxes фильтруют решетку как показано в изображении и основанную на следующий примере; rel= " nofollow " " _blank " " target= " http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx href= задача spnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

The второго http://demos.telerik.com/a Кодего намеревается фильтровать решетку от combobox для того чтобы дать показанный в этом образце;  rel= " nofollow " " _blank " " target= " http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx?product=grid href= spnet-ajax/controls/examples/integration/gridcomboajax/defaultcs.aspx http://demos.telerik.com/a? product=grid

A RadGrid было добавлено к странице и выбранное значение 3-его combobox использовано для того чтобы заселить решетку.  Проблема что comboboxes теряют их значение когда postback происходит и решетка прыгнута.  

We имеет судимое для использования панелей уточнения и хранить выбранные значения в встречу но это не делает work.

Is там добавление javscript нужно взаимодействовать между 3-им combobox и решеткой? окончательному результату

The нужно все значения combobox упорствовать и потребитель ДОЛЖЕН мочь выбрать от фильтрованных деталей в RadComboBox3 (ie выбирает другой фильтрованный урок от группы урока (RadComboBox2).

We не использует менеджера Telerik AJAX по мере того как мы имеем менеджера сценария набор инструментов управлением AJAX побежать на MasterPage. filename " class= >

GridFilteredbyComboSample.jpg (104 KB) яваскрипт " href= " " attachmentDetails class= (тип архива детали) ширина style= >The в action
1 >
class= " r " >
using;
using Telerik.Web.UI;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;


общественный частично тип Applications_xTrain_Controls_xtv_VideoSelector: System.Web.UI.Page
{
    _data только для чтения DataAccess = новое DataAccess ();
    защищенное пустое Page_Load (прислужник предмета, EventArgs e)
    {         
        //fill материки комбинированные
        LoadContinents ();

        Перемеююые встречи #region
        Geek.XTV7_Categories_ID = RadComboBox1.SelectedValue;
        Geek.XTV7_Categories_Sub_ID = RadComboBox2.SelectedValue;
        Geek.XTV7_Videos_ID = RadComboBox3.SelectedValue;
        #endregion

        если возвращение (Page.IsPostBack);
        RadComboBox2.SelectedValue = Geek.XTV7_Categories_Sub_ID.ToString ();
        RadComboBox3.SelectedValue = Geek.XTV7_Videos_ID.ToString ();
    
    }
    #region RadComboBox Databinding
    защищенное пустое LoadContinents ()
    {
        Соединение SqlConnection = новое SqlConnection (
        ConfigurationManager.ConnectionStrings [«XtrainConnectionString»] .ConnectionString);

        Переходника SqlDataAdapter = новое SqlDataAdapter («ОТБОРНОЕ Xtrain.XTV7_1_Categories.XTV7_Categories_Image, Xtrain.XTV7_1_Categories.XTV7_Categories_ID, Xtrain.XTV7_1_Categories.XTV7_Categories_Name, ОТСЧЕТ (Xtrain.XTV7_2_Videos.XTV7_Videos_ID) ПО МЕРЕ ТОГО КАК видеоие ОТ Xtrain.XTV7_1_Categories ВНУТРЕННЕГО СОЕДИНЯЮТ Xtrain.XTV7_2_Videos НА ГРУППА Xtrain.XTV7_1_Categories.XTV7_Categories_ID = Xtrain.XTV7_2_Videos.XTV7_Categories_ID Xtrain.XTV7_1_Categories.XTV7_Categories_Image, Xtrain.XTV7_1_Categories.XTV7_Categories_ID, Xtrain.XTV7_1_Categories.XTV7_Categories_Name ИМЕЯ (Xtrain.XTV7_1_Categories.XTV7_Categories_Name КАК N'ESRI%') И (<> 0 ОТСЧЕТА (Xtrain.XTV7_2_Videos.XTV7_Videos_ID))», соединения);
        DataTable dt = новое DataTable ();
        переходника. Заполнение (dt);

        RadComboBox1.DataTextField = «XTV7_Categories_Name»;
        RadComboBox1.DataValueField = «XTV7_Categories_ID»;
        RadComboBox1.DataSource = dt;
        RadComboBox1.DataBind ();
        //insert первый деталь
        RadComboBox1.Items.Insert (0, новое RadComboBoxItem («- выберите категорию -»));
    }

    защищенное пустое LoadCountries (continentID шнура)
    {
        Соединение SqlConnection = новое SqlConnection (
        ConfigurationManager.ConnectionStrings [«XtrainConnectionString»] .ConnectionString);

        //select страна основанная на continentID
        Переходника SqlDataAdapter = новое SqlDataAdapter («ОТБОРНОЕ XTV7_Categories_Sub_ID, XTV7_Categories_Sub_Name, XTV7_Categories_Sub_Available ОТ Xtrain.XTV7_1_Categories_Sub ГДЕ (XTV7_Categories_ID = @XTV7_Categories_ID) И (XTV7_Categories_Sub_Available = 1)», соединение);
        adapter.SelectCommand.Parameters.AddWithValue («@XTV7_Categories_ID», continentID);

        DataTable dt = новое DataTable ();
        переходника. Заполнение (dt);

        RadComboBox2.DataTextField = «XTV7_Categories_Sub_Name»;
        RadComboBox2.DataValueField = «XTV7_Categories_Sub_ID»;
        RadComboBox2.DataSource = dt;
        RadComboBox2.DataBind ();
    }

    защищенное пустое LoadCities (countryID шнура)
    {
        Соединение SqlConnection = новое SqlConnection (
        ConfigurationManager.ConnectionStrings [«XtrainConnectionString»] .ConnectionString);

        //select город основанный на countryID
        Переходника SqlDataAdapter = новое SqlDataAdapter («ОТБОРНОЕ XTV7_Videos_ID, XTV7_Categories_Sub_ID, XTV7_Videos_Title ОТ Xtrain.XTV7_2_Videos ГДЕ (XTV7_Categories_Sub_ID=@XTV7_Categories_Sub_ID) И (XTV7_VideoAvailable = 1) И (НЕ (XTV7_Videos_Title НУЛЕВО))», соединение);
        adapter.SelectCommand.Parameters.AddWithValue («@XTV7_Categories_Sub_ID», countryID);

        DataTable dt = новое DataTable ();
        переходника. Заполнение (dt);

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

    #region RadComboBox измененное SelectedIndex
    защищенное пустое RadComboBox2_SelectedIndexChanged (предмет o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        //BindData (Geek.XTV7_Categories_Sub_ID.ToString ());
    }

    защищенное пустое RadComboBox3_SelectedIndexChanged (предмет o, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        BindData (Geek.XTV7_Videos_ID.ToString ());
    }

    #endregion

    Связь RadGrid #region с видео- данными
    защищенное пустое BindData (видеоий шнура)
    {

        шнур sql = "";
        sql +=
            «ОТБОРНОЕ XTV7_Videos_ID, XTV7_Categories_Sub_ID, XTV7_Videos_Title ОТ Xtrain.XTV7_2_Videos ГДЕ (XTV7_Videos_ID=» +
            Видеоий + ") И (XTV7_VideoAvailable = 1) И (НЕ (XTV7_Videos_Title НУЛЕВО))»;

        DataTable dt = _data.GetDataTable (sql);
        если (dt. Rows.Count > 0), то
        {
            RadGrid1.DataSource = dt;
           RadGrid1.DataBind ();
        }
        еще
        {
            RadGrid1.DataSource = null;
            RadGrid1.DataBind ();
        }
    }
    #endregion

    Детали #region спрошенные RadComboBox
    защищенное пустое RadComboBox1_ItemsRequested (предмет o, RadComboBoxItemsRequestedEventArgs e)
    {
        LoadContinents ();
    }

    защищенное пустое RadComboBox2_ItemsRequested (предмет o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text будет первым параметром метода requestItems
        // призвало в методе LoadCountries
        LoadCountries (e.Text);
    }

    защищенное пустое RadComboBox3_ItemsRequested (предмет o, RadComboBoxItemsRequestedEventArgs e)
    {
        // e.Text будет первым параметром метода requestItems
        // призвало в методе LoadCities
        LoadCities (e.Text);
    }
    #endregion

    Изображение связи #region к значению решетки (самостоятельный к вопросу)
    защищенный шнур GetImageUrl (деталь int)
    {
        если (деталь. Равные (0))
        {
            возвратите «~/App_Themes/XGIS/images/LessonLevels/Beginner.png»;
        }
        еще если (деталь. Равные (1))
        {
            возвратите «~/App_Themes/XGIS/images/LessonLevels/Intermediate.png»;
        }
        еще если (деталь. Равные (2))
        {
            возвратите «~/App_Themes/XGIS/images/LessonLevels/Advanced.png»;
        }
        другой деталь. Равные ("");
        {
            возвратите «~/App_Themes/XGIS/images/LessonLevels/clear.gif»;
        }
    }
    #endregion
  
}
filename " class= >
RadCombo-LostStatePostGridFilter.jpg (85 KB) яваскрипт " href= " " attachmentDetails class= (тип архива детали) ширина style= >The с: 550px; высота: 194px; alt= " http://filedb.experts-exchange.com/incoming/2010/05_w20/t305796/RadCombo-LostStatePostGridFilter.jpg "» src= class= " 305796 "/>
>
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
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:
"" Language= " C# " MasterPageFile= " ~/App_Master/SingleColumnFixed.master " Title= страницы ><%@ " class= " " codeSnippet641781 id=

Регистр Assembly= " Telerik.Web.UI " TagPrefix= " telerik " Namespace= " Telerik.Web.UI " %> <%@

    id= " qsfexWrapper " 
Category:
Group " AssociatedControlID= " RadComboBox2 " " сервера " runat= ярлыка ID= " Label2:
Lesson " AssociatedControlID= " RadComboBox3 " " сервера " runat= ярлыка ID= " Label3:

type= " текст/яваскрипт "
class=

Ответ : Коробка RadCombo теряет детали на postback.

Наилучшим образом, вы идете иметь некоторое непредвиденное поведение если вы используете *_SelectedIndexChanged () случай для того чтобы установить значение управления. По крайней мере вы можете надеяться ненужные roundtrips до Кодий может произвести различные значения чем вы фактическ предпологаете. Также, вообще передовая практика должна использовать ViewState () для того чтобы хранить значения если вы не выходите страница, то использует встречу () для того чтобы хранить значения которым нужно быть поделенным между страницами. Дайте это, я попытался бы что-то как следующий… и пожалуйста заметить это вполне непроверен. Я не имею управления Telerik для проверки этого, но эти вообще рамки сделают вы ищете (смогите требовать немного tweaking, котор нужно улучшить)…
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:
приватная КАТЕГОРИЯ шнура const = «CategoryId»;
приватный SUBCATEGORY шнура const = «SubCategoryId»;
приватное ВИДЕОИЙ шнура const = «VideoId»;

защищенное пустое Page_Load (прислужник предмета, EventArgs e)
{
	если возвращение (IsPostBack);
	
	InitializeElements ();
	LoadContinents ();
	PopulateControls ();
}

приватное статическое пустое InitializeElements ()
{
	// будет этими поистине предметами встречи? Право теперь они кажется, что будут просто перемеююыми.
	Geek.XTV7_Categories_ID = шнур. Пусто;
	Geek.XTV7_Categories_Sub_ID = шнур. Пусто;
	Geek.XTV7_Videos_ID = шнур. Пусто;
	
	ViewState.Remove (КАТЕГОРИЯ);
	ViewState.Remove (SUBCATEGORY);
	ViewState.Remove (ВИДЕОИЙ);
	
    RadGrid1.Visible = ложно;
}

приватное пустое PopulateControls ()
{
	RadGrid1.Visible = ложно;
	
	если (ViewState, то [КАТЕГОРИЯ]! = нулевое &&! string.IsNullOrEmpty ((шнур) ViewState [КАТЕГОРИЯ]))
	{
		var tempCategory = (шнур) ViewState [КАТЕГОРИЯ];
        LoadCountries (tempCategory);
        Label4.Text = tempCategory;
		
		var tempC1 = RadComboBox1.Items.FindByValue (tempCategory);
		если (tempC1! = null) tempC1.Selected = true;
	}
	
	если (ViewState, то [SUBCATEGORY]! = нулевое &&! string.IsNullOrEmpty ((шнур) ViewState [SUBCATEGORY]))
	{
		var tempSubCategory = (шнур) ViewState [SUBCATEGORY];
        LoadCities ((tempSubCategory);
        Label5.Text = tempSubCategory;
		
		var tempC2 = RadComboBox2.Items.FindByValue (tempSubCategory);
		если (tempC2! = null) tempC2.Selected = true;
	}
	
	если (ViewState, то [ВИДЕОИЙ]! = нулевое &&! string.IsNullOrEmpty ((шнур) ViewState [ВИДЕОИЙ]))
	{
		tempVideo var = (шнур) ViewState [ВИДЕОИЙ];
        BindData (tempVideo);
        Label6.Text = tempVideo;
		
		var tempC3 = RadComboBox3.Items.FindByValue (tempVideo);
		если (tempC3! = null) tempC3.Selected = true;
	}
}

приватное пустое BindData (videoId шнура)
{
	// эта линия должно быть добавлено перед вашим RadGrid1.DataBind ()
	RadGrid1.Visible = true;
		
	//keep ваша существующий логика, но добавляет следующий блок где-то в этом методе…
	Перемеююые встречи #region
	Geek.XTV7_Categories_ID = (шнур) ViewState [КАТЕГОРИЯ];
	Geek.XTV7_Categories_Sub_ID = (шнур) ViewState [SUBCATEGORY];
	Geek.XTV7_Videos_ID = (шнур) ViewState [ВИДЕОИЙ];
	#endregion
}

#region RadComboBox измененное SelectedIndex
защищенное пустое RadComboBox1_SelectedIndexChanged (предмет o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (КАТЕГОРИЯ);
	ViewState.Remove (SUBCATEGORY);
	ViewState.Remove (ВИДЕОИЙ);
	
	ViewState.Add (КАТЕГОРИЯ, RadComboBox1.SelectedValue.Trim ());
	PopulateControls ();
}

защищенное пустое RadComboBox2_SelectedIndexChanged (предмет o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (SUBCATEGORY);
	ViewState.Remove (ВИДЕОИЙ);
	
	ViewState.Add (SUBCATEGORY, RadComboBox2.SelectedValue.Trim ());
	PopulateControls ();
}

защищенное пустое RadComboBox3_SelectedIndexChanged (предмет o, RadComboBoxSelectedIndexChangedEventArgs e)
{
	ViewState.Remove (ВИДЕОИЙ);
	
	ViewState.Add (ВИДЕОИЙ, RadComboBox3.SelectedValue.Trim ());
	PopulateControls ();
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us