событие selectedindexchanged в radcombobox

У меня есть radcombobox как:

<telerik:RadComboBox ID="SelectInitiative" runat="server" AutoPostBack="true" 
                    DataSourceID="SqlInitiative" DataTextField="Initiative_Name" 
                    DataValueField="ID"  EmptyMessage="Select Initiative" Height="200px" 
                      OnSelectedIndexChanged="SelectInitiative_SelectedIndexChanged" Width="300px">
                </telerik:RadComboBox></td>
            <td>
                <asp:Label ID="Label1" runat="server" Text=""></asp:Label>

            </td>`


<asp:SqlDataSource ID="SqlInitiative" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ProjectPlanningConnectionString %>" 
        SelectCommand="SELECT * FROM [Initiative]"></asp:SqlDataSource>

И код события такой:

 protected void SelectInitiative_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
        if (SelectInitiative.SelectedValue.ToString() != "")
        {
            Session["InitiativeID"] = SelectInitiative.SelectedValue.ToString();
        }
        Label1.Text = "You selected " + e.Value + " item";

    }

Проблема в том, что он не получает значение " selectedvalue" или "e.Value", оба значения выходят пустыми....... Пожалуйста, помогите ...........


person smriti    schedule 25.02.2013    source источник
comment
Вы уверены, что ваш источник данных правильно заполнил ваш RadCombobox? Вы отладили, чтобы проверить его содержимое?   -  person Mehdi Bugnard    schedule 25.02.2013
comment
да, источник данных в порядке. radcombobox показывает мне все значения   -  person smriti    schedule 25.02.2013


Ответы (2)


Вы можете попробовать это?

protected void SelectInitiative_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    if(!IsPostBack)
    {
        if (SelectInitiative.SelectedValue.ToString() != "")
        {
            Session["InitiativeID"] = SelectInitiative.SelectedValue.ToString();
        }
        //Or change this line 
        //Label1.Text = "You selected " + e.Value + " item";
        //To this sample
        Label1.Text = "You selected " + SelectInitiative.SelectedValue + " item";

    }

}

Или посмотрите/проверьте содержимое этой переменной из свойств RadComboBoxSelectedIndexChangedEventArgs:

-Text : это текст только что выбранного элемента.

-Value : это значение только что выбранного элемента.

-OldText : текст элемента, который был выбран ранее

-OldValue : значение ранее выбранного элемента.

Или попробуйте это:

Label1.Text = "You selected " + SelectInitiative.SelectedValue + " item";
person Mehdi Bugnard    schedule 25.02.2013
comment
Он получает значение для e.Text, но возвращает пустое значение для e.Value. - person smriti; 25.02.2013
comment
И если вы попробуете это: Label1.Text = You selected + SelectInitiative.SelectedValue + item; Вместо того, чтобы использовать e.Value и посмотреть, работает ли это, я уже изменил свой ответ - person Mehdi Bugnard; 25.02.2013
comment
У меня уже была такая же проблема, как у вас, в моем приложении. См. здесь: telerik.com /сообщество/форумы/aspnet-ajax/combobox/ - person Mehdi Bugnard; 25.02.2013
comment
А теперь крик о помощи плиззз - person smriti; 25.02.2013
comment
вау, это действительно странно .. Может быть еще одна проблема в вашем коде на вашей странице. - person Mehdi Bugnard; 25.02.2013
comment
Я думаю, что DataSource не может привязывать идентификатор как значение для я не знаю, почему. Вы пытались заполнить RadCombobox вручную, чтобы увидеть, проблема только в DataSource? - person Mehdi Bugnard; 25.02.2013

У меня была похожая проблема, и для меня источником было то, что я устанавливал источник данных для каждого AutoPostBack. Убедитесь, что вы не повторно инициализируете элементы в поле со списком до того, как событие сработает.

person Lolletje    schedule 19.05.2021