【发布时间】:2010-05-25 03:11:49
【问题描述】:
在我的网页中,我使用以下命令填充列表视图控件
<asp:ListView ID="ListView1" runat="server">
<layouttemplate>
<asp:PlaceHolder id="itemPlaceholder" runat="server" /></layouttemplate>
<ItemTemplate>
<tr>
<td><asp:Label ID="Label1" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans1") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans1Visible") %>'></asp:Label>
<br />
<asp:Label ID="Label2" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans2") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans2Visible") %>'></asp:Label>
<br />
<asp:Label ID="Label3" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans3") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans3Visible") %>'></asp:Label>
<br />
<asp:Label ID="Label4" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans4") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans4Visible") %>'></asp:Label>
<br />
<asp:Label ID="Label5" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans5") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans5Visible") %>'></asp:Label>
<br />
<asp:Label ID="Label6" runat="server" Text = '<%# DataBinder.Eval(Container.DataItem, "Ans6") %>' Visible = '<%# DataBinder.Eval(Container.DataItem, "Ans6Visible") %>'></asp:Label>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
现在我想在标签呈现之前添加数字。
例如当前显示的数据是这样的
Tennis
Football
Basketball
Nfl
Nba
Polo
我想要的输出是
1. Tennis
2. Football
3. Basketball
4. Nfl
5. Nba
6. Polo
我可以使用 ListView1_ItemCreated 或 ListView1_ItemDataBound 事件来实现吗? 如果这是真的,你能给我指出一个开始的地方吗?
P.S.列表视图中填充了
Dt = GetDataTable("SELECT Ans1, Ans2,Ans3,Ans4,Ans5,Ans6, Ans1Visible,Ans2Visible,Ans3Visible,Ans4Visible,Ans5Visible,Ans6Visible, From myTable WHERE CatID ='" & cat & "'")
ListView1.DataSource = Dt
ListView1.DataBind()
【问题讨论】:
-
内容是否必须在表格中呈现?使用 ol(有序列表)而不是表格将允许浏览器自动为您生成数字。我也很想知道您的数据结构是什么样的,因为您似乎使用 ListView 来表示单行数据。
-
是的,它们必须显示在一个表格中,(你在这里看到一个简化版本)
-
所以为了澄清你的数据结构:你有一个返回多个记录的查询,每个记录包含 Ans1、Ans2、Ans3... 和 Ans1Visible、Ans2Visible... 等。然后你有多个表行,每个都包含 6 个项目的列表?只是想更清楚地了解目标。
-
是的,以上都是真的。
-
我建议您查看您的数据库的结构。似乎应该更加规范化。如果上级告诉您他们希望将第七个答案添加到列表视图中,您打算怎么做?您将不得不更新您的数据库,并进行代码更改。如果您正确规范化,您可能能够避免这两种变化。我知道这不是您要寻找的答案,但它可能是您的应用程序目前最重要的问题...
标签: asp.net vb.net listview itemdatabound