如何让 RadGrid 中的 RadAutoCompleteBox 在编辑模式下显示绑定值?

How to get a RadAutoCompleteBox in a RadGrid to display bound value in Edit mode?

我希望我只是做错了一点点(最近从 winforms 转移到 web-dev,并且是 Telerik 的新手)。我正在更新一个主要有一个 RadGrid 显示 GridBoundColumns 的应用程序,它正常显示文本并在编辑行时转向文本框。我正在将这些列之一转换为在 EditItemTemplate 中使用 RadAutoCompleteBox 的 GridTemplateColumn。在正常(显示?)模式下,绑定到项目的文本显示正确,但当行进入编辑模式时,AutoCompleteBox 正确绑定到它自己的数据源,但不显示该列的网格行值。我该怎么做?

我有:

    <telerik:GridTemplateColumn UniqueName="PartNumber" HeaderText="Part Number"  ItemStyle-CssClass="editWidth"
            FilterControlAltText="Filter PartNumber column" FilterControlWidth="85%">
        <ItemTemplate><%#DataBinder.Eval(Container.DataItem, "PartNumber")%></ItemTemplate>
        <EditItemTemplate>
            <%#DataBinder.Eval(Container.DataItem, "PartNumber")%>
            <telerik:RadAutoCompleteBox runat="server" ID="racbPN" DataSourceID="ItemIdSource" DataTextField="IMA_ItemID" 
                HighlightFirstMatch="true" InputType="Text" TextSettings-SelectionMode="Single" MaxResultCount="200" MinFilterLength="4" 
                    Delimiter="" DropDownHeight="300px" DropDownWidth="200px">
            </telerik:RadAutoCompleteBox>
        </EditItemTemplate>
        <HeaderStyle Width="190px"></HeaderStyle>
    </telerik:GridTemplateColumn>

搜索 Telerik 论坛,我看到了一些关于将代码放入 ItemDataBound 事件的参考资料。该代码通常在 C# 中,而我的转换为 VB 的实现从不工作。我不知道我是不是翻译有误,或者它们不是我的情况的真正答案,但这是我在代码隐藏中尝试过的示例:

        If e.Item.IsInEditMode Then
            Dim item As GridEditableItem = e.Item
            If Not e.Item Is GetType(IGridInsertItem) Then
                Dim auto As RadAutoCompleteBox = CType(item.FindControl("racbPN"), RadAutoCompleteBox)
                auto.Entries.Add(New AutoCompleteBoxEntry(item("PartNumber").Text, item("GSIS_AMRKey").Text))
            End If
        End If

感谢您查看,如果我遗漏了一些重要信息,请告诉我还需要提供哪些其他信息。

(radautocompletebox 应该是一个有效的标签吗?)

Telerik 技术支持回复了我一个答案。我上面在 OnItemDataBound 事件中列出的代码几乎是正确的。这有效:

        If e.Item.IsInEditMode Then
            If Not e.Item Is GetType(IGridInsertItem) Then
                Dim partNumber As String = DirectCast(e.Item.DataItem, DataRowView)("PartNumber").ToString
                Dim auto As RadAutoCompleteBox = DirectCast(e.Item.FindControl("racbPN"), RadAutoCompleteBox)
                auto.Entries.Add(New AutoCompleteBoxEntry(partNumber))
            End If
        End If