我有一些需要转换为asp.net的经典asp代码。到目前为止,我已经尝试使用数据加载器和中继器来实现这一点并且没有运气,因为菜单循环遍历4个不同的记录集,在移动到下一个记录之前传递menuNid。
请告诉我你用什么方法来汇总这段代码...即datareaders?数据集?等?
由于
答案 0 :(得分:2)
你有几个选择..
asp.net支持asp样式表示法,意思是< %%>仍然支持等...你可以保持你的代码几乎与一些小调整.. 但是你会错过90%的产品。即标记和代码的分离。
我建议你在asp.net中熟悉自己的服务器控件模型,并重写你的页面以使用它来摆脱所有%crap ..
我们不能在表单答案中教你asp.net,但是服务器控件是那里方法的核心,所以理解它们会让你非常接近如何转换你的东西。 。 http://www.w3schools.com/ASPNET/aspnet_controls.asp
答案 1 :(得分:2)
您可以将所需的所有数据读入DataTable(使用DataSet和SqlDataAdapter),以便您可以重复使用它,而不必为菜单中的每个级别和每个项目运行查询。这样你可以有一个数据库调用而不是很多数据库调用,数据库调用绝对是这段代码的瓶颈。
您可以使用递归来获得不同的级别,而不是一遍又一遍地重复相同的代码。
要为菜单构建元素,您有几个选项。一种是将PlaceHolder放在页面中,并通过将控件树添加到其他控件集合中来创建控件树。另一种选择是在StringBuilder中自己构建HTML代码,并将结果放在Literal控件中。