2016-12-14 2 views
0

У меня есть хранимая процедура, с которой я использую данные для заполнения таблицы с Datatable следующим образом:Использование конкретного столбца в DataTable

foreach (DataRow row in dt.Rows) 
{ 
    html.Append("<tr>"); 
    foreach (DataColumn column in dt.Columns) 
    { 
     html.Append("<td>"); 
     html.Append("<a target='_blank' href= " + "'" + row[dt.Columns["subCategoryURL"]] + "'" + " >"); 
     html.Append(row[column.ColumnName]); 
     html.Append("</a>"); 
     html.Append("</td>") 
    } 
    html.Append("</tr>"); 
} 

я в настоящее время возвращения SP 2 колонки информации: subCategoryName , subCategoryDescription. Я хотел бы добавил 3-й subCategoryURL столбца, который будет служить в качестве тега для ссылки, как показано ниже:

<td> 
    <a target="_blank" href="#">Dealer Support</a> 
</td> 
<td> 
    <a target="_blank" href="#">Support information for dealer management</a> 
</td> 

Как бы я ориентировать каждый столбец специально для создания таблицы? Я попытался использовать html.Append(row[dt.Columns["subCategoryURL"]]); , но он не вернул желаемый результат. Что я мог сделать дальше?

+0

Вы уверены, что столбец в 'DataTable' называется точно' subCategoryURL'? Потому что то, что вы сделали, должно работать. – kiziu

+0

URL-адрес подкатегории в таблице ... как бы настроить таргетинг на другие 2 в цикле –

ответ

1

Подкатегория URL в конечном итоге в таблице ... как бы я предназначаться другой 2 в петле

таким же образом, то есть:

foreach (DataRow row in dt.Rows) 
{ 
html.Append("<tr>"); 
html.Append("<td>"); 
html.Append("<a target='_blank' href= " + "'" + row["subCategoryURL"].ToString() + "'" + " >"); 
html.Append(row["subCategoryName"].ToString()); 
html.Append("</a>"); 
html.Append("</td>"); 

html.Append("<td>"); 
html.Append(row["subCategoryDescription"].ToString()); 
html.Append("</td>"); 

html.Append("</tr>"); 
} 

строку [» subCategoryName "] вы получите значение столбца« subCategoryName »текущей строки.

1

Чтобы получить элемент определенного типа (T) из DataRow (datarow), соответствующего определенному столбцу (columnName), вы можете использовать следующее.

dataRow.Field<T>(columnName) 

Так,

string url = row.Field<string>(subCategoryURL) 

может работать.

Имейте в виду, что T должен быть того же типа, что и данные, хранящиеся в указанном столбце DataRow. Если subCatergoryURL указывает на строку с удвоением, то выше будет вызывать InvalidCastException.

См. here.

+0

, вы должны указать, что 'row.Field ' должен соответствовать правильному типу данных конкретного столбца данных, а в противном случае 'OP' может принять дословно то, что вы заявляете. – MethodMan

Смежные вопросы