2

我的表格上有一个telerik rad组合

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

在 CS

在另一个 rad 组合的 Selected Index 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表只有两列,Name如上所述Id。没有抛出错误,一切正常,但结果在 UI 上不可见。

任何见解/帮助?

4

2 回答 2

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---"));

我知道,查看您的代码,我的版本可能比您自己的版本更新,但希望上述示例可以演示您如何实现所需的更改。

于 2013-08-29T09:00:39.453 回答
0

删除 DropdownListHeight 并再次测试

于 2013-08-29T09:56:36.107 回答