使用带有json字符串列的中继器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用带有json字符串列的中继器相关的知识,希望对你有一定的参考价值。
我有一个SQL Server存储的proc,它返回产品列表。我正在使用中继器在网页中显示数据。这一切都很好,并且返回的行很好。但是,对于每个产品,我都希望获得功能列表,例如:
ProductID, Name, Features
1, T-Shirt, "Blue, Long sleeved, 100% cotton"
2, Jeans, "Blue, Denim, Stonewashed"
理想情况下,我想对我的proc进行一个数据库调用,以一次性返回所有产品及其功能。因此,我认为我需要proc返回三列(ProductID,ProductName,Features),而features列为json数组。
我对asp.net非常陌生,甚至对json还是陌生。我正在使用c#,并且在html页面中,我已经能够很好地使用ProductName和ProductID方面。我希望它看起来像这样(ul标签部分是功能):
<div class="card-description"><%# Eval("ProductName") %><br><br>
<ul>
<li>Lightweight textured fabric</li>
<li>Rounded v-neckline</li>
<li>100% cotton</li>
</ul><br><br>
Product code: <strong><%# Eval("ProductID") %></strong>
</div>
然后我的问题是(a)这是执行此操作的最佳方法吗?(b)如何逐行反序列化JSON?
我以错误的方式走这条路吗?
[嗯,我不会将JSON数据推送到数据绑定元素。要实现它可能有很多方案,这取决于您如何管理记录以及如何处理它们。我假设您有两个分别名为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
还有其他方法,但这将是更简单有效的方法。希望这会有所帮助。
以上是关于使用带有json字符串列的中继器的主要内容,如果未能解决你的问题,请参考以下文章