Telerik Grid 从下行列表中获取价值

Telerik Grid get value from downdownlist

我有一个带有以下代码的 Telerik 网格:

 <telerik:GridDropDownColumn DataSourceID="UserSrc" ListTextField="FName" ListValueField="FName"
                    UniqueName="FName" SortExpression="FName" HeaderText="Assigned To"
                    DefaultInsertValue="N/A" DataField="FName" DropDownControlType="DropDownList"
                    AllowVirtualScrolling="true" ShowMoreResultsBox="true" ItemsPerRequest="10">
                </telerik:GridDropDownColumn>

在我的代码中有以下内容:

  protected void ItemCommand(object sender, GridCommandEventArgs e)
    {
        if (e.CommandName == "Update")
        {

我的问题是如何从下拉列表中获取选定的值。

尝试一下,但您需要处于编辑模式,因为当此类行处于显示模式时,不会呈现 DropDown 控件。因此没有数据绑定,您无法获取其 DataValues。

{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
  {
    GridEditableItem item = e.Item as GridEditableItem;
    string MyValue = (item["FName"].Controls[0] as RadComboBox).SelectedItem.Text;
  }

如果您未处于编辑模式,另一种方法是创建一个隐藏列并在其中保存下拉列的选定值,并从该列中检索值。

在第二种情况下,您可以像这样获取隐藏列的值:

protected void ItemCommand(object source, GridCommandEventArgs e)
 {
  if (e.CommandName == "Update")
   {
    GridDataItem item = (GridDataItem)e.Item;
    string value = item["MyHiddenColumn"].Text;
   }
 }

您的隐藏列应如下所示:

<telerik:GridBoundColumn DataField="FName" UniqueName="MyHiddenColumn" HeaderText="ID" Visible="false">
        </telerik:GridBoundColumn>

如果您使用 Visible="false" 您无法访问该列,请改用 display="false"。 http://www.telerik.com/forums/visible-vs-display-on-grid-column-definition