在页面显示一个 DataGrid 的时候,常常需要显示一个序列,如图所示:
Sub DataGrid_ItemDataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
If e.Item.ItemType <> ListItemType.Header Then
e.Item.Cells(0).Text = (e.Item.ItemIndex + 1).ToString + ""
End If
End Sub
<asp:TemplateColumn>
<ItemStyle Wrap="False"></ItemStyle>
<HeaderTemplate>序号</HeaderTemplate>
<ItemTemplate>
<%# Container.DataSetIndex + 1 %>
</ItemTemplate>
<EditItemTemplate>
<%# Container.DataSetIndex + 1 %>
</EditItemTemplate>
</asp:TemplateColumn>

同时根据 DataGrid 的过滤条件不同,需要也发生相应变化。
我们除了可以在数据库中直接建立视图表示以外,还可以采用下面介绍的方法:
solution 1:
首先,在<asp:datagrid>标签中加入:OnItemDataBound="DataGrid_ItemDataBound" ,并且在<Columns>中添加相应列,比如:<asp:BoundColumn HeaderText="序号"></asp:BoundColumn>
然后在 CodeBehinde 中加入:
Sub DataGrid_ItemDataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
If e.Item.ItemType <> ListItemType.Header Then
e.Item.Cells(0).Text = (e.Item.ItemIndex + 1).ToString + ""
End If
End Sub注:e.Item.Cells(0)代表你要显示在第几列,本例是显示在第一列。
solution 2:
直接在<Columns>中添加:
<asp:TemplateColumn>
<ItemStyle Wrap="False"></ItemStyle>
<HeaderTemplate>序号</HeaderTemplate>
<ItemTemplate>
<%# Container.DataSetIndex + 1 %>
</ItemTemplate>
<EditItemTemplate>
<%# Container.DataSetIndex + 1 %>
</EditItemTemplate>
</asp:TemplateColumn>
两种方法效果相同。现在我想请教各位高手,我想将该序列倒序排列,应该如何最简单的方法解决呢?谢谢。

浙公网安备 33010602011771号