значение на стороне клиента не принимается на стороне сервера при использовании jquery

Я хотел избежать обратной передачи в своем приложении. Пользуюсь telerik radcombobox. Когда пользователь выбирает значение из поля radcombo, выбранное значение должно появиться в коде на стороне сервера для привязки данных для другого поля radcombo. Мой клиентский код для отображения значения в раскрывающемся списке telerik radcombo:

    <input type="hidden" id="tCodh" runat="server" />
    <telerik:RadComboBox ID="tCod" runat="server" style="width: 185px;" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged" >
    <DefaultItem Text="Select" Value="" />
        <Items>                                                
            <telerik:RadComboBoxItem Text="Description" Value="Description" />
            <telerik:RadComboBoxItem Text="Account" Value="Account" />
            <telerik:RadComboBoxItem Text="Price" Value="Price" />
            <telerik:RadComboBoxItem Text="Quantity" Value="Quantity" />                                              
        </Items>
     </telerik:RadComboBox>

       function OnClientSelectedIndexChanged(sender, eventArgs) {            
               var item = eventArgs.get_item();           
                document.getElementById('<%=tCod.ClientID%>').value = item.get_value();                  
            }

здесь я использовал скрытое поле для хранения значения, выбранного пользователем в поле radcombo. Значение, полученное в скрытом поле, должно быть отправлено на стороне сервера. код для привязки значения к серверной переменной ...

   public  List<TelerikCombo> TCombo_Values()
   {
       string value =   tCodh.Value;        
   }

    But selected value is not shown. Instead error, object reference is not set to instance of an object is shown. Any help?
    Thanks in advance.

person Codes Decodes    schedule 03.11.2014    source источник
comment
Из любопытства, что такое обратная передача? Все, что я знаю, это то, что это концепция .NET.   -  person PeterKA    schedule 03.11.2014
comment
Для меня твой вопрос не имеет смысла. Вы сохраняете выбранное значение RadComboBox внутри скрытого поля, чтобы избежать обратной передачи, тогда вы получаете это значение только из выделенного кода. Вы можете сделать это с помощью tCod.SelectedValue   -  person Sikandar Amla    schedule 04.11.2014


Ответы (1)


Убедитесь, что вы правильно установили значение скрытого поля, в конце его идентификатора отсутствует буква «h».

Вот ваш код с этим исправлением, которое у меня сработало:

    <input type="hidden" id="tCodh" runat="server" />
    <telerik:RadComboBox ID="tCod" runat="server" Style="width: 185px;" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
        <DefaultItem Text="Select" Value="" />
        <Items>
            <telerik:RadComboBoxItem Text="Description" Value="Description" />
            <telerik:RadComboBoxItem Text="Account" Value="Account" />
            <telerik:RadComboBoxItem Text="Price" Value="Price" />
            <telerik:RadComboBoxItem Text="Quantity" Value="Quantity" />
        </Items>
    </telerik:RadComboBox>
    <asp:Button ID="Button1" Text="get values on server" OnClick="Button1_Click" runat="server" />
    <script type="text/javascript">
        function OnClientSelectedIndexChanged(sender, eventArgs) {
            var item = eventArgs.get_item();
            document.getElementById('<%=tCodh.ClientID%>').value = item.get_value();
        }
    </script>

и пример обработчика сервера для использования этих данных:

protected void Button1_Click(object sender, EventArgs e)
{
    string data = string.Format("data in hidden input: {0}<br />data from combo: {1}", tCodh.Value, tCod.SelectedValue);
    Response.Write(data);
}

А вот демонстрация использования каскадных комбинаций: http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

person rdmptn    schedule 04.11.2014