2012-04-23 7 views
0

タイトルが付いている2つの列と2つのハイパーリンクが付いた2つの列(もっと簡単な場合は、リンクごとに2つの異なる列を作成できます)を持つグリッドが必要です。RadGridにデータを割り当てる

私はタイトルの配列とIDの配列を持っています。私はリンクが "edit.aspx?id = INSERT_ID_FROM_DATA_HERE"のようなものになりたいと思っています。私がこれまで持って何

<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Telerik" AutoGenerateColumns="True"> 
              <MasterTableView> 
               <Columns> 
                <telerik:GridBoundColumn HeaderText="Title" UniqueName="Title" DataFormatString="'{0}'"> 
                </telerik:GridBoundColumn> 
                <telerik:GridHyperLinkColumn HeaderText="Actions" UniqueName="Actions" 
                 DataNavigateUrlFormatString="default.aspx?id='{0}" DataTextField="Edit"> 
                </telerik:GridHyperLinkColumn> 
               </Columns> 
              </MasterTableView> 
             </telerik:RadGrid> 

AND:

DataTable dt = new DataTable(); 
      DataColumn dcTitle = new DataColumn("Title"); 
      DataColumn dcId = new DataColumn("Actions"); 
      dt.Columns.Add(dcTitle); 
      dt.Columns.Add(dcId); 

      String[] widgetNames = new String[list.Count]; 
      String[] widgetIds = new String[list.Count]; 

      for (int i = 0; i < list.Count; i++) 
      { 
       widgetNames[i] = list[i].SelectSingleNode("title").InnerText; 
       widgetIds[i] = list[i].SelectSingleNode("instanceid").InnerText; 

       String[] row = new String[2]; 
       row[0] = widgetNames[i]; 
       row[1] = widgetIds[i]; 

       dt.LoadDataRow(row, true); 
      } 

      RadGrid1.DataSource = dt; 

それは、2つの新しい列を作成し、ちょうどリンクせずに、そこにタイトルとIDを出力します。

答えて

1

列を指定するため、AutoGenerateColumns = "False"に設定してください。 DataFieldおよびDataNavigateUrlFields属性をデータソースの列名に設定します。

データ形式文字列のプレースホルダ値は、グリッド列の指定されたデータフィールドを参照します。 GridBoundColumnは1つのDataFieldしか持てませんが、GridHyperLinkColumnにはカンマで区切られた複数のデータフィールドを持つことができます。 {0}は最初のフィールド、{1}は2番目のフィールドなどを参照します。

複数のハイパーリンクに関する質問に答えるには、それぞれに個別のGridHyperLinkColumnを使用する方が簡単です。それ以外の場合は、独自の完全なレンダリングを作成するためにTemplateColumnを使用する必要があります。

<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Telerik" AutoGenerateColumns="False"> 
    <MasterTableView> 
     <Columns> 
      <telerik:GridBoundColumn HeaderText="Title" DataField="Title" DataFormatString="'{0}'" /> 
      <telerik:GridHyperLinkColumn HeaderText="Actions" UniqueName="Actions" DataNavigateUrlFields="Actions" DataNavigateUrlFormatString="default.aspx?id='{0}'" DataTextField="Edit" /> 
     </Columns> 
    </MasterTableView> 
</telerik:RadGrid> 
+0

ありがとうございます!タイトルは機能しますが、アクションタブは機能していないようです。 – Vadiklk

+0

質問を投稿してからデータソースが変更されましたか?ハイパーリンクの列が機能していない理由をトラブルシューティングするには、さらに情報を提供する必要があります。データソースの構築方法は複雑すぎるようです。それは単純化することができます。 – ulty4life