【问题标题】:client side value not taken in server side on using jquery使用 jquery 时未在服务器端获取客户端值
【发布时间】:2014-12-29 18:04:59
【问题描述】:

我想避免在我的应用程序中回发。我正在使用 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.

【问题讨论】:

  • 出于好奇,什么是回发?我只知道这是一个 .NET 概念。
  • 你的问题对我来说毫无意义。您将 RadComboBox 的选定值存储在隐藏字段中以避免回发,然后您仅从代码隐藏中检索此值。您可以通过 tCod.SelectedValue 做到这一点

标签: jquery asp.net telerik radcombobox


【解决方案1】:

确保正确设置隐藏字段值,其 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

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 2021-05-06
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多