RadGrid在插入/编辑模式下填充下拉列表

时间:2011-05-22 13:02:05

标签: asp.net telerik radgrid telerik-grid

我有一个RadGrid,它具有插入和编辑功能。

其中一个字段是下拉列表。

我的要求是

  • 当用户点击“添加新”时,我希望能够更改下拉列表中的某些属性并在数据时填充它
  • 当用户编辑一行时,我需要更改下拉列表的选定索引以显示正在编辑的数据并将其禁用。 我不知何故需要处理其中一个网格事件,确定它是否处于插入/编辑模式,然后使用FindControl来访问我的下拉菜单。

我看过一些事件,例如ItemCommand,DataBound,ItemCreated等,我只是想弄清楚如何访问我的下拉菜单?我需要知道我需要什么对象来调用控制来获取我的下拉。

感谢。

2 个答案:

答案 0 :(得分:1)

this doc开始,请记住,要确定插入/更新操作,可以分别检查GridTableView.IsItemInserted属性和网格的EditItems集合。更改项目值或禁用下拉列表的相应事件是ItemDataBound和ItemCreated。

答案 1 :(得分:1)

您可以尝试使用GridDropDownColumn在网格内创建一个下拉列,该列在编辑或插入模式下自动填充下拉列表。例如:

<telerik:GridDropDownColumn UniqueName="ParamType" DataField="ParamType" HeaderText="Parameter type" HeaderStyle-HorizontalAlign="Center" DropDownControlType="RadComboBox" ListDataMember="ParamType" ListTextField="ParamType" ListValueField="ParamType">
</telerik:GridDropDownColumn>

您可以在ItemDataBound事件中填充数据或访问下拉框。例如:

    protected void GvParametersItemDataBound(object sender, GridItemEventArgs e)
    {
                if (e.Item is GridEditableItem && e.Item.IsInEditMode)
                {
                    //bind data to ddl in edit mode
                    GridEditableItem editedItem = e.Item as GridEditableItem;
                    GridEditManager editMan = editedItem.EditManager;
                    GridDropDownListColumnEditor editor = (GridDropDownListColumnEditor)(editMan.GetColumnEditor("DropDownColumnUniqueName"));
                    RadComboBox ddList = editor.ComboBoxControl;
                    ddList.RenderMode = Telerik.Web.UI.RenderMode.Auto;

                    ddList.OnClientSelectedIndexChanged = "OnClientSelectedParamerterIndexChanged";
                    ddList.DataTextField = Constants.DataTextField;
                    ddList.DataValueField = Constants.DataValueField;
                    ddList.DataSource = GetParameterTypes();
                    ddList.DataBind();
                }
    }