关于第二个问题,可以使用虚拟列来传递参数,如下面例子中的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()
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()
http://www.dotnetjunkies.com/404/?aspxerrorpath=/Tutorial/ShowContent.aspx?cg=17F2328F-ECB8-478F-A393-3D0E0F024EC0&forumid=4847
http://www.dotnetjunkies.com/Article/17F2328F-ECB8-478F-A393-3D0E0F024EC0.dcik
<Columns>
//第一個問題開始
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
//第一個問題結束
//第二個問題開始
<asp:HyperLinkColumn Text="GO" Target="_self" DataNavigateUrlField="0" HeaderText="GO" NavigateUrl="****.aspx?id={0}"></asp:HyperLinkColumn>
//第二個問題結束 </Columns>
</asp:DataGrid>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>