对了还有一个问题,在DataGrid上添加一列超级链接列后,点击它会不会触发什么事件?因为我想给它传一个参数(这一行某列的值),应该怎么做呢?

解决方案 »

  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()
      

  2.   

    第一个见
    http://www.dotnetjunkies.com/404/?aspxerrorpath=/Tutorial/ShowContent.aspx?cg=17F2328F-ECB8-478F-A393-3D0E0F024EC0&forumid=4847
      

  3.   

    这个:
    http://www.dotnetjunkies.com/Article/17F2328F-ECB8-478F-A393-3D0E0F024EC0.dcik
      

  4.   

    右击datagrid,选属性生成器,在列选项中添加一个模板列,回到页面右击datagrid,选编辑模板列,找到那一列,然后拖一个checkbox到ItemTemplete中即可,good luck!
      

  5.   

    <asp:DataGrid id="DataGrid1" runat="server">
            <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>
      

  6.   

    用模板列:如
    <asp:TemplateColumn>
                    <ItemTemplate>
                        <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
                    </ItemTemplate>
                </asp:TemplateColumn>
      

  7.   

    最简单的方法:将<asp:ButtonColumn  Text=""...></asP:ButtonColumn> 中的Text="<input type=chkecbox name=chk>"还有一个方法,如果你想知道再告诉你!
      

  8.   

    呵呵,chinamnli(木子李) :方法多多益善,本来刚才想结贴,但CSDN太慢结不了,各位等这边快些再拿分吧