【发布时间】:2011-12-24 07:22:55
【问题描述】:
我正在尝试从另一个结果中填充一个 Telerik AJAX radComboBox,即
- comboBox1 - 自动完成和用户选择一个项目
- comboBox2 – 用户 选择。按需加载。使用从 comboBox1 中选择的值 自行填充。
问题是我无法获取combobox1的选中值
标记
<telerik:RadComboBox ID="comboBox1" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox1_ItemsRequested" >
</telerik:RadComboBox>
<telerik:RadComboBox ID="comboBox2" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox2_ItemsRequested" >
</telerik:RadComboBox>
C#
protected void comboBox1_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
//.. populate this combo
}
protected void comboBox2_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
string test = comboBox1.SelectedValue;
//.. test is empty. Why??
}
令人沮丧的是,我无法获得所选值。问题可能是页面实际上并没有回发(必须是问题的一部分),因此选择的值没有机会被设置。所以我写了代码来解决这个问题
标记
<telerik:RadComboBox ID="comboBox1" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox1_ItemsRequested"
onclientselectedindexchanged="OnClientSelectedIndexChanged">
</telerik:RadComboBox>
<asp:HiddenField runat="server" ID="hidClientId" />
<telerik:RadComboBox ID="comboBox2" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox2_ItemsRequested" >
</telerik:RadComboBox>
jQuery
function OnClientSelectedIndexChanged(sender, eventArgs) {
var item = eventArgs.get_item();
var value = item.get_value();
$("[ID$='hidClientId']").val(value);
}
C#
protected void comboBox2_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
string test = hidClientId. Value;
//.. test is empty. Why??
}
在我看来,这似乎绕过了回发问题,但它仍然不起作用。
有谁知道如何从另一个获取一个 radComboBox 的值?非常感谢任何帮助
【问题讨论】:
-
你在哪里设置
DataTextField和DataValueField? -
我没有明确设置它,因为它是按需加载的。我将它们添加为列表项,即 foreach(项目中的参考项目){ cbClient.Items.Add(new Telerik.Web.UI.RadComboBoxItem { Text = item.Description, Value = item.Value }); }
-
听起来在您到达代码中的那个点之前,选择被覆盖并被新的列表项替换。
标签: jquery asp.net ajax combobox telerik