2012-04-23 25 views
0

我想有一個網格有兩列,一個有標題,第二個有兩個超鏈接(如果更容易,你可以創建2個不同的列,每個鏈接一個)。我有一個標題和ID數組的數組。我想要的鏈接將是像「edit.aspx?id = INSERT_ID_FROM_DATA_HERE」。分配數據到RadGrid

我有什麼至今:

<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個新列,只是打印標題和IDS那裏,沒有鏈接。

回答

1

由於您指定了列,因此請務必設置AutoGenerateColumns =「False」。 將DataField和DataNavigateUrlFields屬性設置爲數據源的列名稱。

數據格式字符串中的佔位符值引用網格列的指定數據字段。一個GridBoundColumn只能有一個DataField,但是GridHyperLinkColumn可以有多個用逗號分隔的數據字段; {0}指的是第一個字段,{1}到第二個字段等...

要回答有關多個超鏈接的問題,更容易爲每個超鏈接使用單獨的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

Thanks!標題有效,但操作選項卡似乎不起作用。 – Vadiklk 2012-04-24 12:07:45

+0

自發布該問題以來,您的DataSource是否已更改?您必須提供更多信息才能解決超鏈接列無效的原因。數據源的構建方式似乎過於複雜。它可以被簡化。 – ulty4life 2012-04-24 23:41:03