在使用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.

确保正确设置隐藏字段值,ID末尾缺少"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

最新更新