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