可以这样用:
......
((DataRowView)e.Item.DataItem).Row
后面的你就会了吧。

解决方案 »

  1.   

    用虚拟参数传递主键的值,如下的MasID.       
     Dim TB As New DataTable
            TB.Columns.Add("MasterID")
            TB.Columns.Add("MasterName")
            TB.Columns.Add("MasterLevel")
            TB.Columns.Add("MasterClick")
            TB.Columns.Add("UpdateTime")
            TB.Columns.Add("MasterPath")
            TB.Columns.Add("MasterDesc")
            TB.Columns.Add("MasID")        Dim num As Integer
            Dim Reader As SqlDataReader
            Dim tmpRow As DataRow        num = 1        Dim myConn As SqlConnection
            Dim IConn As Integer        IConn = cmnCnConnect(myConn, ConfigurationSettings.AppSettings("dataconnection"))        If IConn = 0 Then
                Response.Write("<script>alert('网络过忙,请稍后!');</script>")
                Exit Sub
            End If        Dim myCmd As SqlCommand        If TypeID = "1" Then
                myCmd = New SqlCommand
                myCmd.CommandText = "select MasterID,MasterName,MasterLevel = CASE WHEN MasterInfo.MasterLevel = '1' THEN '☆' WHEN MasterInfo.MasterLevel = '2' THEN '☆☆' WHEN MasterInfo.MasterLevel = '3' THEN '☆☆☆' WHEN MasterInfo.MasterLevel = '4' THEN '☆☆☆☆' WHEN MasterInfo.MasterLevel = '5' THEN '☆☆☆☆☆' END,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo,TypeInfo where MasterInfo.TypeID=TypeInfo.TypeID and TypeFlag='" & "A" & "' order by MasterLevel desc,MasterName"
                myCmd.Connection = myConn
                Reader = myCmd.ExecuteReader()
            ElseIf TypeID = "2" Then
                myCmd = New SqlCommand
                myCmd.CommandText = "select MasterID,MasterName,MasterLevel = CASE WHEN MasterInfo.MasterLevel = '1' THEN '☆' WHEN MasterInfo.MasterLevel = '2' THEN '☆☆' WHEN MasterInfo.MasterLevel = '3' THEN '☆☆☆' WHEN MasterInfo.MasterLevel = '4' THEN '☆☆☆☆' WHEN MasterInfo.MasterLevel = '5' THEN '☆☆☆☆☆' END,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo,TypeInfo where MasterInfo.TypeID=TypeInfo.TypeID and TypeFlag='" & "B" & "' order by MasterLevel desc,MasterName"
                myCmd.Connection = myConn
                Reader = myCmd.ExecuteReader()
            ElseIf TypeID = "3" Then
                myCmd = New SqlCommand
                myCmd.CommandText = "select MasterID,MasterName,MasterLevel = CASE WHEN MasterInfo.MasterLevel = '1' THEN '☆' WHEN MasterInfo.MasterLevel = '2' THEN '☆☆' WHEN MasterInfo.MasterLevel = '3' THEN '☆☆☆' WHEN MasterInfo.MasterLevel = '4' THEN '☆☆☆☆' WHEN MasterInfo.MasterLevel = '5' THEN '☆☆☆☆☆' END,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo,TypeInfo where MasterInfo.TypeID=TypeInfo.TypeID and TypeFlag='" & "C" & "' order by MasterLevel desc,MasterName"
                myCmd.Connection = myConn
                Reader = myCmd.ExecuteReader()
                'ElseIf TypeID = "" Then
                '    myCmd = New SqlCommand
                '    myCmd.CommandText = "select MasterID,MasterName,MasterLevel,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo order by MasterLevel desc,MasterName"
                '    myCmd.Connection = myConn
                '    Reader = myCmd.ExecuteReader()
            Else
                myCmd = New SqlCommand
                myCmd.CommandText = "select MasterID,MasterName,MasterLevel = CASE WHEN MasterInfo.MasterLevel = '1' THEN '☆' WHEN MasterInfo.MasterLevel = '2' THEN '☆☆' WHEN MasterInfo.MasterLevel = '3' THEN '☆☆☆' WHEN MasterInfo.MasterLevel = '4' THEN '☆☆☆☆' WHEN MasterInfo.MasterLevel = '5' THEN '☆☆☆☆☆' END,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo where TypeID=" & TypeID & " order by MasterLevel desc,MasterName"
                myCmd.Connection = myConn
                Reader = myCmd.ExecuteReader()            If Reader.HasRows = False Then
                    Reader.Close()
                    myCmd = New SqlCommand
                    myCmd.CommandText = "select MasterID,MasterName,MasterLevel = CASE WHEN MasterInfo.MasterLevel = '1' THEN '☆' WHEN MasterInfo.MasterLevel = '2' THEN '☆☆' WHEN MasterInfo.MasterLevel = '3' THEN '☆☆☆' WHEN MasterInfo.MasterLevel = '4' THEN '☆☆☆☆' WHEN MasterInfo.MasterLevel = '5' THEN '☆☆☆☆☆' END,MasterClick,UpdateTime,MasterPath,MasterDesc from MasterInfo,TypeInfo where TypeInfo.TypeID=MasterInfo.TypeID and ParentID=" & TypeID & " order by MasterLevel desc,MasterName"
                    myCmd.Connection = myConn
                    Reader = myCmd.ExecuteReader()
                End If
            End If        While Reader.Read()
                tmpRow = TB.NewRow()
                tmpRow(0) = Reader("MasterID")
                tmpRow(1) = Reader("MasterName")
                tmpRow(2) = Reader("MasterLevel")
                tmpRow(3) = Reader("MasterClick")
                tmpRow(4) = Reader("UpdateTime")
                tmpRow(5) = Reader("MasterPath")
                tmpRow(6) = Reader("MasterDesc")
                tmpRow(7) = "detail.aspx?MasterID=" & Reader("MasterID")
                TB.Rows.Add(tmpRow)
                num = num + 1
            End While        If num = 1 Then
                Me.DtlResult.DataSource = Nothing
                Me.DtlResult.DataBind()
            Else
                Me.DtlResult.DataSource = New DataView(TB)
                Me.DtlResult.DataBind()
            End If        myConn.Close()