组合框设置为后面的代码可见,但不会显示在aspx页面上

时间:2014-11-07 17:04:40

标签: asp.net ajax vb.net telerik radcombobox

我在一个aspx页面上没有正确更新Telerik radcombobox有点问题。用户基本上会选择“是”'或者没有'来自radcombobox 1.如果用户选择“是”'那么radcombobox 2应该显示并且radcombobox 3应该被隐藏;如果用户选择“不”。那么radcombobox 3应该显示,radcombobox 2应该被隐藏。

背后的代码是vb.net。在aspx页面上,组合框1是ajaxed并且应该更新其他两个radcombobox。在radCoobox 1的SelectedIndexChanged子后面的代码中,'可见'根据用户的选择交换radcombobox 2和3的属性。

问题是radcomboboxes似乎没有交换(即,在aspx页面上更新),除非页面被重新加载,我假设发生这种情况,因为重新加载页面实质上是强制回发。 / p>

我不想强迫回发来解决这个问题,因为我觉得这是一个强力解决方法,我想理解逻辑为什么不能正常工作。< / p>

以下是实际代码。我在上面的radcomboboxes上使用了通用名称。

    <telerik:AjaxSetting AjaxControlID="cboX2">
<UpdatedControls>
    <telerik:AjaxUpdatedControl ControlID="cboKey" />
    <telerik:AjaxUpdatedControl ControlID="cboKey_X2" />
</UpdatedControls>

这里是组合框1 SelectedIndexChanged sub:

的代码
    If Me.cboKey.Visible = True OrElse Me.cboKey_X2.Visible = True Then
If piX2 <> 0 Then
    Me.cboKey.Visible = False
    Me.cboKey_X2.Visible = True
ElseIf piX2 = 0 Then
    Me.cboKey_X2.Visible = False
    Me.cboKey.Visible = True
End If

结束如果

任何帮助理解为什么这不起作用将不胜感激!

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

        <asp:Panel ID="Panel1" runat="server">
            <telerik:RadComboBox ID="RadComboBox1" runat="server"></telerik:RadComboBox>
            <telerik:RadComboBox ID="RadComboBox2" runat="server"></telerik:RadComboBox>
            <telerik:RadComboBox ID="RadComboBox3" runat="server"></telerik:RadComboBox>
        </asp:Panel>

使用这样的AJAX设置:

                <telerik:AjaxSetting AjaxControlID="RadComboBox1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="Panel1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>

可能由于某种原因,其他组合框不会更新。最有可能的是,因为默认情况下它们是Visible = false,所以RadAjaxManager无法在它们周围包装UpdatePanel来更新它们,因为它们根本就不存在。