gpt4 book ai didi

asp.net - 从 ASP.net 页面上的集合输出数据的最佳实践是什么?

转载 作者:行者123 更新时间:2023-12-02 20:54:26 30 4
gpt4 key购买 nike

我已将一个页面从经典 ASP 移植到 ASP.net。此页面中发生的部分情况是生成自定义类型的集合,然后通过 Response.Write() 命令显示。我希望将业务逻辑分离到代码隐藏文件中(并且可能将其全部移至用户控件中),但我似乎无法弄清楚在生成集合后如何实际显示该集合。我也想在这里指定一个母版页,这样代码就不能保持内联。这是当前代码的一个非常精简的版本:

<%
Dim objs as ArrayList = New ArrayList()

For i = 0 To 2
Dim obj as Obj = New Obj()

obj.setProp1("ASDF")
obj.setProp2("FDSA")

objs.Add(obj)
Next i
%>

<table>
<thead>
<tr>
<th scope="col">Property 1</th>
<th scope="col">Property 2</th>
</tr>
</thead>
<tbody>
<%
For Each obj As Obj In objs
Dim objProp1 As String = obj.getProp1
Dim objProp2 As String = obj.getProp2
%>
<tr>
<td><% Response.Write(objProp1)%></td>
<td><% Response.Write(objProp2)%></td>
</tr>
<%
Next
%>
</tbody>
</table>

“.net”的做法是什么?

最佳答案

您还可以查看 ListView control 这是 Joe R 提到的中继器的更新版本。 ScottGu's blog 上有一个关于如何使用 ListView 的很棒的教程。 .

你的代码基本上会变成这样的东西:

<asp:ListView id="ListView1" runat="server" enableviewstate="false">
<LayouTemplate>
<table>
<thead>
<tr>
<th scope="col">Property 1</th>
<th scope="col">Property 2</th>
</tr>
</thead>
<tbody>
<asp:Placeholder runat="server" id="ItemPlaceholder" />
</tbody>
</table>
</LayouTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("objProp1" )%></td>
<td><%# Eval("objProp2" )%></td>
</tr>
</ItemTemplate>
</asp:ListView>

These guys考虑使用 Eval 不是一个好的做法,但它使编写示例变得更容易。如果您要呈现只读数据,请不要忘记关闭 ViewState,否则您的页面会很快变得非常大。

编辑还发现了feature comparison chart此处不同列表样式控件之间。

关于asp.net - 从 ASP.net 页面上的集合输出数据的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677927/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com