Ну, я бы не стал выдвигать данные JSON в элемент данных. Для этого может быть много сценариев ios, и это зависит от того, как вы управляете своими записями и как они обрабатываются. Я предполагаю, что у вас есть две таблицы с именами Products
и Features
соответственно с этой схемой: Products (Id, Name)
и Features(Id, FeatureDescription, ProductId)
Итак, я бы просто предложил вам запросить ваши данные следующим образом:
SELECT Name AS ProductName, STUFF((SELECT ', ' + FeatureDescription FROM Features WHERE Features.ProductId = Products.Id FOR XML PATH('')), 1, 2, '') AS ProductFeatures FROM Products
И затем вы можете оценить и связать возвращенный DataField (ProductFeatures)
с любым вашим тегом HTML в повторителе, где вы хотите его отобразить.
Если вы хотите настроить записи , вы можете использовать вложенный Repeater
элемент управления, и когда первое repeater
вызывает событие ItemDataBound
, вы можете связать второй ретранслятор внутри него. Или вы можете обработать возвращенный CSV-ответ, используя метод Stati c, как показано ниже:
Разметка:
<div><%# GetFeaturesHtml(Eval("ProductFeatures"))%></div>
CS:
public static string GetFeaturesHtml(object o)
{
if(o == null || DBNull.Value.Equals(o))
{
return "";
}
var splittedFeatures= o.ToString().Split(',');
var sb = new StringBuilder("<ul>");
foreach(string feature in splittedFeatures)
{
sb.Append(string.Format("<li>{0}</li>", feature));
}
sb.Append("</ul>");
return sb.ToString();
}
И другие способы тоже, но это был бы более простой и эффективный способ сделать это. Надеюсь, это поможет.
PS: Общий код не проверен, и может потребоваться некоторая любовь.