gpt4 book ai didi

jquery - Telerik AJAX radComboBox。从第二个组合框中获取 SelectedValue

转载 作者:行者123 更新时间:2023-12-01 01:03:40 24 4
gpt4 key购买 nike

我正在尝试从另一个即的结果填充一个 Telerik AJAX radComboBox

  1. comboBox1 – 自动完成并用户选择一个项目
  2. 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 获取一个 radComboBox 的值?非常感谢任何帮助

最佳答案

您无法访问页面上的其他控件的原因是 RadComboBox 对项目执行异步请求,因此页面上的其他控件无法访问。

尝试处理 OnClientItemsRequesting 事件,利用上下文对象(传递到服务器端代码)发送第一个组合的选定值。

标记

<telerik:RadCodeBlock ID="RadCodeBlock" runat="server">

<script type="text/javascript">

function OnClientItemsRequesting(sender, eventArgs) {

var comboBox1 = $find('<%= comboBox1.ClientID %>');
var value = comboBox1.get_value();

var context = eventArgs.get_context();
context["ComboBox1Value"] = value;
}

</script>

</telerik:RadCodeBlock>

<telerik:RadComboBox ID="comboBox1" runat="server"
MarkFirstMatch="False">
<Items>
<telerik:RadComboBoxItem Text="Item 1" Value="0" />
<telerik:RadComboBoxItem Text="Item 2" Value="1" />
</Items>
</telerik:RadComboBox>

<telerik:RadComboBox ID="comboBox2" runat="server"
EnableLoadOnDemand="True"
MarkFirstMatch="False"
onitemsrequested="comboBox2_ItemsRequested"
OnClientItemsRequesting="OnClientItemsRequesting">
</telerik:RadComboBox>

隐藏代码

protected void comboBox2_ItemsRequested(object sender, Telerik.Web.UI.RadComboBoxItemsRequestedEventArgs e)
{
string selectedValue = e.Context["ComboBox1Value"].ToString();
}

希望这有帮助。

关于jquery - Telerik AJAX radComboBox。从第二个组合框中获取 SelectedValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com