2017-11-03 11 views
0

RadGrid를 프론트 페이지에서 코드로 옮길 필요가있는 상황이 있습니다. 코드 뒤에서 RadGrid NestedViewTemplate을 채우는 방법은 무엇입니까?

그것은 다음과 같이하는 데 사용 :

<telerik:RadGrid id="rgBooks" runat="server" 
    Height="300px" 
    Skin="Office2007"  
    EnableViewState="true" 
    AutoGenerateColumns="False" > 
     <MasterTableView 
      EditMode="inplace" 
      TableLayout="auto" 
      ClientDataKeyNames="BookID, BookName, Created, Modified, BookTypeName, BookTypeID" 
      NoMasterRecordsText="No available books." > 
      <HeaderStyle Font-Bold="true" Font-Size="Small" /> 
      <ItemStyle Font-Size="Small" Font-Names="Arial" HorizontalAlign="Left" Wrap="True" BackColor="White"/> 
      <HeaderStyle Wrap="False" Width="99%" HorizontalAlign="Left"/> 
      <AlternatingItemStyle Font-Size="Small" Font-Names="Arial" HorizontalAlign="Left" Wrap="True" BackColor="White"/> 
      <NestedViewTemplate> 
       <table> 
        <tr> 
         <td> 
          BookType Type: 
         </td> 
         <td> 
          <asp:DropDownList runat="server" ID="ddlBookTypes" AutoPostBack="true" /> 
         </td> 
        </tr> 

        .... 
        .... 

      </NestedViewTemplate> 
      <columns> 
       <telerik:GridBoundColumn HeaderText="Book Name" HeaderStyle-Width="33%" ItemStyle-Width="33%" UniqueName="BookName" DataField="BookName" /> 
       <telerik:GridBoundColumn HeaderText="Created" HeaderStyle-Width="33%" ItemStyle-Width="33%" UniqueName="Created" DataField="Created" /> 
       <telerik:GridBoundColumn HeaderText="Modified" HeaderStyle-Width="33%" ItemStyle-Width="33%" UniqueName="Modified" DataField="Modified" /> 
      </columns> 

      .... 
      .... 

</telerik:RadGrid> 

그리고 코드에서이 다시는 다음과 같습니다 : 그것은 <NestedViewTemplate>을 제외하고 잘 작동

Dim rgBooks As New RadGrid : With rgBooks 
    .ID = "rgBooks" 
    .Height = New Unit(300, UnitType.Pixel) 
    .Skin = "Office2007" 

    .... 
    ....  

End With 

Me.placeHolder.Controls.Add(rgBooks) 

. 거기에 내 값 (테이블)을 보내는 방법을 찾지 못했으며 문자 그대로 문서를 작성하는 방법에 대한 문서가 없습니다. 내가 알고있는 것처럼 은, 그것은 rgBooks.MasterTableView.NestedViewTemplate.InstantiateIn( and here my data)처럼 보이도록되어 있지만, 각 시도가 실패로 끝난 무언가를 보내

예외 Object reference not set to an instance of an object.와 또한 LiteralControl로 전송을 시도 할 수 있습니다.

rgBooks.MasterTableView.Controls.Add(New LiteralControl("<NestedViewTemplate>")) 
rgBooks.MasterTableView.Controls.Add(New LiteralControl("<table>")) 
rgBooks.MasterTableView.Controls.Add(New LiteralControl("<tr>")) 
.... 
.... 

운동하지 못했습니다.

코드에서 NestedViewTemplate을 정확히 기입하는 방법 (정확히는 ITemplate)?

+0

"입력"을 요구? '바인딩'을 의미합니까? – aghilpro

+0

죄송합니다, 영어가 잘 못됩니다. 이해할 수 있다면 기쁩니다 :) 확실하지 않습니까? 아마도 올바른 단어가 될 것입니다. –

+0

아마도 도움이 될 것입니다. https://www.telerik.com/forums/bind-nestedviewtemplate-code-behind – aghilpro

답변

0

어떻게 작동하는지 알아 냈습니다.

사용자 정의 클래스는 다음

Public Class NestedTemplate 
    Implements ITemplate 

    Public Sub InstantiateIn(container As Control) Implements ITemplate.InstantiateIn 

     container.Controls.Add(New LiteralControl("<table>")) 
     container.Controls.Add(New LiteralControl("<tr>")) 

     .... 
     .... 

     container.Controls.Add(New LiteralControl("</table>")) 
    End Sub 
End Class 

그리고 단지

rgBooks.MasterTableView.NestedViewTemplate = new NestedTemplate 

소년 아, 내가이 일에 낭비되는 시간이 얼마나 ...