jQuery核心/数据或自定义属性(数据驱动)

时间:2009-08-24 16:45:32

标签: c# jquery data-binding html5

提出类似的问题here in storing information in a given html element.

我仍然是jQuery的绿色,但我正在寻找在页面上存储信息的最佳方式。我有一个Repeater,每个项目保存一个图像。这些图像是可点击的,可以触发给定的jQuery事件。我遇到的问题是,Repeater绑定的对象包含一些特定的信息(例如“Subtext”,“LargerImage”等),我想从页面访问它。

jQuery中的核心/数据很好地实现了这一点,但是我们仍然需要从C#构建jQuery语句,因为所有数据都存储在服务器上。为了澄清一点,这是在数据库中存储信息,这与通过jQuery提供的任意信息略有不同。

我不是将这个问题限制为“如何将自定义属性绑定到元素”,因为我确实遇到了从C#代码隐藏生成JS Struct以存储信息的想法,但我避免使用任何代码生成代码场景(或尝试)。

HTML5中的自定义属性(即“数据 - 子文本”)也是可能的,因为我可以轻松地从itemdatabound事件中添加这些属性:

sampleImageElement.Attributes.Add("data-subtext", "And this what the image is about");

我对这个特定属性的浏览器支持感到有点困惑,或者如果它在游戏的早期就是最佳实践。如果要使用自定义属性,那么这是一个很容易实现的变化。如果jQuery能够做到这一点,我希望至少为了我自己的理解而以这种方式指出。

非常感谢任何想法。

2 个答案:

答案 0 :(得分:2)

我正在回答这个问题只是为了保持stackoverflow的记录目的,因为这是我为这个场景推进的解决方案。对于任何更大的数据集来说,AJAX调用都是完全保证的,而且我肯定会这样做。

我继续使用jQuery meta-data plugin.提供的HTML5规范中的“数据 - ”字段

我在名为“AddMetaData”的Web.UI.AttributeCollection类上写了一个简短的扩展方法,它接受一个I​​List以及一个字符串“Key”来简化对给定页面元素的附件。

我还没有将此标记为答案,因为可能会有一些社区反馈意见。

答案 1 :(得分:0)

为了阐明ASP.NET中发生的情况,一旦将页面提供给客户端,Repeater在服务器上绑定的对象就会被销毁,然后在每个页面回发时重新创建。

听起来你想要通过AJAX从服务器检索内容的某种工具提示效果?有许多不同的工具提示选项

可用于执行此操作。然后,您可以设置Web服务或页面方法以从数据源中检索相关数据。

当然,您可以在处理请求时将HTML中呈现的内容发送到客户端,并简单地隐藏此标记。然后编写自己的插件,以您需要的形式显示标记。