![](/img/trans.png)
[英]Edit and Delete data from XML file using ASP.net and VB.net (or C#)
[英]Better way for populating data from ms sql database in asp.net (vb.net/c#)
有什么更好的方法来填充数据库中的数据(表,每行至少500行,最少5行):-使用GridView
(并且我将在标头中获得巨大的viewstate
值)?或-将Repeater与具有Literal控件的enableviewstate="false"
一起使用enableviewstate="false"
(但必须在每次postback
后使用带有onclick
属性和隐藏字段的tr
使用JavaScript进行填充)?
是较大的viewstate
还是在每次postback
后读取mdf的更好方法?
谢谢。
这取决于您的担忧所在。
如果您最关心的是事件的易处理性,那么启用viewstate的gridview是您的最佳选择。 它具有用户可以执行的各种动作的强大挂钩。 但是,它确实附带了您提到的viewstate带宽成本。 但是,如果您的受众使用相对良好的联系并且需要快速启动并运行,那么这可能是一个不错的选择。
如果带宽是您主要关心的问题,那么中继器/字面方法肯定会为您节省一些时间,但是您必须自己编写所有事件逻辑。 对每个回发运行相同的查询确实是多余的,但实际上由于数据库的缓存机制,它可能不会占用那么多的性能。 但是,每次回发后,您仍然会发送完整的表。 我认为,最好的带宽节省方案是在加载时仅发送一次完整的表,然后再通过Web服务调用处理所有表事件(您可以使用ASP.NET的Web-API框架)。 这样,只有任何实际的更改将通过网络发送。
您还可以在GridView上禁用viewstate,这将使其更快。 Repeater仍然比GridView快,但是如果编码正确,差异不会太大。 您也可以考虑分页GridView(即在页面中显示它,例如一次显示10行)。
从数据库中读取数据通常比来回发送大型ViewState更快,更高效,但不仅仅是速度决定了走哪条路。 需要考虑安全性和其他事项。 例如,从数据库获取数据对于安全性要比信任可以轻松调整的ViewState好得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.