2013-08-18 21 views
2

我有一个Telerik的弧度组合我的形式Telerik的拉德组合结合数据,但不显示

<radC:RadCombo ID="ddl" runat="server" DropdownListHeight="200px"/>

在CS

在另一个弧度组合的选择指数Changed事件上

var dt = myFunc(); 
ddl.DataTextField="Name"; 
ddl.DataValueField="Id"; 
ddl.DataSource=dt; 
ddl.Databind(); 
ddl.Items.Insert(0,new RadComboBoxItem ("-1","---Choose---")); 

请注意:

我有25项来自db,数据表dt只有两列,如上所述NameId。没有错误被引发,一切都很顺利,但结果在UI上不可见。

任何见解/帮助?

+0

这是在整页回发期间还是Ajax回发?如果它的Ajax,并且您正在使用radajaxmanager或radajaxproxy,请确保您的控件位于更新的控件列表中。 –

+0

@ObsidianPhoenix在完整页面回发期间发生......我没有使用任何radajaxmgr或prxy –

+0

在UI上呈现什么东西?你有任何标记呈现? –

回答

1

如果您使用的是RadAjaxManager/RadAjaxManagerProxy有你确定了第一个下拉列表会更新第二个下拉列表:

<telerik:RadAjaxManagerProxy ID="ajaxManager" runat="server"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="ddlWithOnChangeEvent"> 
      <UpdatedControls> 
       <telerik:AjaxUpdatedControl ControlID="ddlBeingUpdated" /> 
      </UpdatedControls> 
     </telerik:AjaxSetting> 
     ... 
    </AjaxSettings> 
</telerik:RadAjaxManagerProxy> 

下一个点值得考虑的是,你应该设置AppendDataBoundItems为true,这将允许将数据绑定对象添加到组合框以及手动添加的组合框中。

<telerik:RadComboBox ID="ddlBeingUpdated" runat="server" Height="200px" AppendDataBoundItems="true" /> 

一两件事值得指出的这里要说的是,如果你保持功能,因为它是,每次数据绑定时,它只会再增加新的项目到现有列表。我会在这里建议,在添加新的项目之前,该功能被更改为清除任何以前的项目。

var dt = myFunc(); 
ddlBeingUpdated.Items.Clear(); 
ddlBeingUpdated.DataTextField="Name"; 
ddlBeingUpdated.DataValueField="Id"; 
ddlBeingUpdated.DataSource=dt; 
ddlBeingUpdated.Databind(); 

ddl.Items.Insert(0,new RadComboBoxItem ("-1","---Choose---")); 

我知道,看着你的代码,我的版本可能是更近的比你自己的,但希望上面的例子可以证明你如何实现所需要的变化。

0

删除DropdownListHeight并再次测试