2015-01-21 11 views
0

필자는 단지 smidge를 잘못하고 있다고 생각한다. (winforms에서 web-dev로 새로이 옮겨졌고, Telerik에 처음 등장했다.) 주로 RadGrid에 GridBoundColumns를 표시하여 텍스트를 정상적으로 표시하고 행을 편집 할 때 텍스트 상자로 전환하는 응용 프로그램을 업데이트하고 있습니다. 이 열 중 하나를 EditItemTemplate에서 RadAutoCompleteBox를 사용하는 GridTemplateColumn으로 변환 중입니다. 일반 (표시?) 모드에서는 항목에 바인딩 된 텍스트가 올바르게 표시되지만 행이 편집 모드로 들어가면 AutoCompleteBox는 해당 데이터 소스에 올바르게 바인딩되지만 해당 열에 대해 표 행 값을 표시하지 않습니다. 어떻게해야합니까?RadGrid에서 RadAutoCompleteBox를 가져 와서 편집 모드에서 바운드 값을 표시하는 방법은 무엇입니까?

나는이 :

<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 구현은 결코 작동하지 않습니다. 내가 mistranslating있어 나도 몰라하거나 정말 내 상황에 대한 대답은 아니지만 여기에 내가 코드 숨김에서 시도한 무언가의 예 : 봐 주셔서

 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 유효한 태그를해야 하는가?)

답변

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