【问题标题】:How to get a RadAutoCompleteBox in a RadGrid to display bound value in Edit mode?如何在 RadGrid 中获取 RadAutoCompleteBox 以在编辑模式下显示绑定值?
【发布时间】:2015-01-21 14:34:20
【问题描述】:

我希望我只是做错了一些事情(新从 winforms 迁移到 web-dev,并且新到 Telerik)。我正在更新一个应用程序,该应用程序主要具有显示 GridBoundColumns 的 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 应该是一个有效的标签吗?)

【问题讨论】:

    标签: asp.net vb.net telerik radgrid


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多