获取GridView行索引

Insus.NET为了演示这个例子,首先准好数据,创建一个类别

Cosmetic.vb
Imports Microsoft.VisualBasic

Namespace Insus.NET
    Public Class Cosmetic
        Private _ID As Integer
        Private _Type As String
        Private _Name As String
        Private _Weight As Decimal
        Private _UM As String

        Public Property ID As Integer
            Get
                Return _ID
            End Get
            Set(value As Integer)
                _ID = value
            End Set
        End Property

        Public Property Type As String
            Get
                Return _Type
            End Get
            Set(value As String)
                _Type = value
            End Set
        End Property

        Public Property Name As String
            Get
                Return _Name
            End Get
            Set(value As String)
                _Name = value
            End Set
        End Property

        Public Property Weight As Decimal
            Get
                Return _Weight
            End Get
            Set(value As Decimal)
                _Weight = value
            End Set
        End Property
        Public Property UM As String
            Get
                Return _UM
            End Get
            Set(value As String)
                _UM = value
            End Set
        End Property

        Public Sub New()

        End Sub

        Public Sub New(id As Integer, type As String, name As String, weight As Decimal, um As String)
            Me._ID = id
            Me._Type = type
            Me._Name = name
            Me._Weight = weight
            Me._UM = um
        End Sub
    End Class
End Namespace

 
上面创建好的只是一对象,得需用数据填充,让它有血有肉有灵魂。

View Code
Private Function GetData() As List(Of Cosmetic)
        Dim o As New List(Of Cosmetic)
        Dim c As New Cosmetic(1, "滋润霜", "玉兰油", 50, "g")
        o.Add(c)

        Dim c1 As New Cosmetic(2, "滋润霜", "雅诗兰黛", 100, "g")
        o.Add(c1)

        Dim c2 As New Cosmetic(3, "滋润霜", " 兰蔻", 80, "g")
        o.Add(c2)

        Dim c3 As New Cosmetic(4, "滋润霜", "欧莱雅", 60, "g")
        o.Add(c3)

        Dim c4 As New Cosmetic(5, "滋润霜", "芭比波朗", 120, "g")
        o.Add(c4)

        Return o
    End Function


在aspx网页上放一个Gridview控件:

View Code
 <asp:GridView ID="GridViewCosmetic" runat="server" Width="300" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField>
                    <HeaderTemplate>
                        ID
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%# Eval("ID")%>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>
                        Type
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%# Eval("Type")%>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>
                        Name
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%# Eval("Name")%>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemStyle HorizontalAlign="Right" />
                    <HeaderTemplate>
                        Weight
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%# Eval("Weight")%>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <HeaderTemplate>
                        UM
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%# Eval("UM") %>
                    </ItemTemplate>
                </asp:TemplateField>                
            </Columns>
        </asp:GridView>


当然得对这个控件,进行数据绑定,引用命名空间Imports Insus.NET

View Code
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Data_Binding()
        End If
    End Sub

    Private Sub Data_Binding()
        Me.GridViewCosmetic.DataSource = GetData()
        Me.GridViewCosmetic.DataBind()
    End Sub

接下来,我们开始演示,在GridView控件最后一列,添加一列,选择列:

1 <asp:TemplateField>
2     <ItemTemplate>
3         <asp:LinkButton ID="LinkButton1" runat="server" Text="选择" OnClientClick="return GetSelectedRow(this)" />
4     </ItemTemplate>
5 </asp:TemplateField>


上面html代码中,有一个OnClientClick="return GetSelectedRow(this)" 客户端事件。

View Code
 <script type="text/javascript">
        function GetSelectedRow(obj) {
            var row = obj.parentNode.parentNode;
            var rowIndex = row.rowIndex - 1;           
            alert("你选择的行索引是:" + rowIndex);
            return false;
        }
    </script>


动画演示:

原文地址:https://www.cnblogs.com/insus/p/2858768.html