1

RadGrid を使用して、私が持っている配列に基づいてテーブルを動的に印刷したいと考えています。問題は、私がテレリックと ASP.NET を初めて使用することです。

私がPHPで行うことは次のとおりです。

<?php 
$data = stuff;
?>
<table>
   <?php foreach($data as $dataOne): ?>
      <tr><td><?php echo $dataOne; ?></td></tr>
    <?php endforeach; ?>
</table>

今度は、RadGrid を使用して ASP.NET でも同じことを行いたいと考えています。

ありがとう。

編集:

データは「オブジェクト」を含む XML として返され、それぞれに名前や番号を含むいくつかのフィールドがあります。テーブルにすべてを表示したいと思います。XML を複数の配列 (各配列は 1 つの列を保持)、オブジェクト、またはその他に解析できます。それをRadGridに入れる方法を知る必要があります。

4

1 に答える 1

1

ASP.NET の同等のコード:

var data = getDataFromDB(); 

telerikGrid.DataSource=data;
telerikGrid.DataBind();

そして、aspx ページで次のように定義されたグリッドビューを作成します。

<telerik:radgridview id="telerikGrid" runat="server" />

アップデート:

XML を解析してオブジェクトを作成できると言うので、カスタム ビジネス オブジェクトを使用した例を示します。

以下のようなクラス構造を持つ:

public class Employee
{
    public string EmployeeName {get;set;}
    //... And more properties
    Public Child[] Children {get;set;}
}

public class Child
{
   public string Name {get;set;}
   //and more properties
}

XML を解析してEmployee[]、次のような方法でグリッドに表示する を作成するとします。

-------------------------------
| Employee Name  |   Children |
+-----------------------------+
|  John          |   Peter    |
|                |   Charles  |
+----------------+------------+
| Michael        |   Anna     |
+-----------------------------+

マークアップは次のようになります。

<telerik:radgridview id="telerikGrid" runat="server" OnItemDataBound="telerikGrid_ItemDataBound">
 <MasterTableView AutoGenerateColumns="false">
      <Columns>
       <telerik:GridBoundColumn DataField="EmployeeName" HeaderText="EmployeeName">
       </telerik:GridBoundColumn>
       <telerik:GridTemplateColumn>
            <ItemTemplate>
                <telerik:radgridview runat="server" id="gridEmpChildren">
                   <MasterTableView AutoGenerateColumns="false">
                      <Columns>
                          <telerik:GridBoundColumn DataField="Name"                                       HeaderText="Children">
       </telerik:GridBoundColumn>
                      </Columns>
                   </MasterTableView>
                </telerik:radgridview>
            </ItemTemplate>
       <telerik:GridTemplateColumn>
 </MasterTableView>
</telerik:radgridview>

ハンドラーを ItemDataBound イベントに追加し、そのように実装します (このハンドラーを定義する上記のマークアップに注意してください)。

protected void telerikGrid_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
        GridDataItem item = (GridDataItem)e.Item; 
        RadGridView childrenGrid = (RadGridView)item.FindControl("gridEmpChildren"); 
        childrenGrid.DataSource= item["Children"];//See class Employee
        childrenGrid.DataBind();
    } 
 } 

さて、上記の例に表示されているようにグリッドをレンダリングする完全なサンプル実装は次のとおりです。

 //Sample data
 Employee[] employees = new Employee[] {
    new Employee{
            EmployeeName="John",
            Children= new Child[]{
                    new Child{Name="Peter"},
                    new Child{Name="Charles"}
                    }
        }
        ,new Employee{
            EmployeeName="Michael",
            Children=new Child[]{
                    new Child{Name="Anna"}
                    } 
        }
};

telerikGrid.DataSource=employees;
telerik.DataBind(); 

注: コードはどれもテストされていません。すぐに機能しない場合は、余裕を持ってください。これに近いことは間違いない。

于 2012-04-19T16:40:48.187 に答える