ASPX+VB网页GridView如何实现(a)(b)(c)样式的字母型序号?
GridView实现(a)(b)(c)样式字母序号
场景一:数据量≤26条(单字母序号)
直接在前台模板里通过ASCII码转换即可,替换原来的数字序号模板:
<asp:TemplateField HeaderText="Ser"> <ItemTemplate>(<%# Chr(97 + Container.DataItemIndex) %>)</ItemTemplate> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> <ItemStyle HorizontalAlign="Center" Width="35px"/> </asp:TemplateField>
原理:小写字母a的ASCII码是97,Container.DataItemIndex从0开始累加,刚好对应a、b、c...z,再用括号包裹就得到目标格式。
场景二:数据量>26条(多字母序号,如aa、ab)
如果数据超过26条,需要生成类似Excel列名的序列,就得后台写转换函数配合前台调用:
后台VB代码(放在页面CodeBehind中)
Public Function GetLetterSerial(index As Integer) As String Dim serial As String = "" While index >= 0 serial = Chr(97 + (index Mod 26)) & serial index = (index \ 26) - 1 End While Return "(" & serial & ")" End Function
前台ASPX模板代码
<asp:TemplateField HeaderText="Ser"> <ItemTemplate><%# GetLetterSerial(Container.DataItemIndex) %></ItemTemplate> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" /> <ItemStyle HorizontalAlign="Center" Width="35px"/> </asp:TemplateField>
这个函数会自动处理超26的序号:0→(a)、26→(aa)、27→(ab),以此类推。
内容的提问来源于stack exchange,提问作者Baiju
相关产品推荐
相关产品推荐

