Asp.net 选择“索引已更改”以打开新表单

Asp.net 选择“索引已更改”以打开新表单,asp.net,Asp.net,我有一个带有datagridview的网页,在这个网页上,用户应该能够单击selectindexchanged(在本例中是“选择”按钮),在第二页的标签中显示他们所选内容的结果,并将其重定向到该页面。以下是我为vb.net编写的代码: Imports System.Data.SqlClient Imports System.Data Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load

我有一个带有datagridview的网页,在这个网页上,用户应该能够单击selectindexchanged(在本例中是“选择”按钮),在第二页的标签中显示他们所选内容的结果,并将其重定向到该页面。以下是我为vb.net编写的代码:

Imports System.Data.SqlClient
Imports System.Data
Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        TimeDateLabel.Text = String.Format("Today is {0:F}", DateTime.Now)
        TextBox1.Focus()
    End Sub
    Protected Sub whosoncallButton_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles whosoncallButton.Click
        Dim dt As New DataTable
        Dim da As New SqlDataAdapter
        Dim cmd As New SqlCommand
        Dim connectionString As String = "Initial Catalog=mdr;Data Source=xxxxx;uid=xxxxx;password=xxxxx"
        Dim con As New SqlConnection(connectionString)
        con.Open()
        cmd.Connection = con
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "getoncall"
        cmd.Parameters.AddWithValue("@subschedule", TextBox1.Text)
        Try
            da.SelectCommand = cmd
            da.Fill(dt)
            GridView1.DataSource = dt
            GridView1.DataBind()
            con.Dispose()
        Catch ex As Exception
            Response.Write("Error:" & ex.Message)
        End Try
    End Sub
    Protected Sub clearButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles clearButton.Click
        TextBox1.Text = ""
        GridView1.DataSource = Nothing
        GridView1.DataBind()
    End Sub
    Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
        Dim row As GridViewRow = GridView1.SelectedRow
        Response.Redirect("Default2.aspx?msg=" + row.Cells(1).Text)
    End Sub

End Class
我还为我的aspx页面添加了一行事件处理程序。

我已经对此进行了调试,但无论到目前为止我尝试了什么,SelectIndexChanged事件都不会触发。有人能帮我吗

多谢各位


Doug

如果没有看到您的ASPX GridView,就无法确切地说出为什么这不起作用,但我猜您没有正确地生成选择按钮。是否在GridView中设置了此属性

autogenerateselectbutton="True"

根据您在下面评论中发布的内容,您可以将您的ASPX代码更改为以下任意一项以使其正常工作:

使用当前按钮字段():

):


必须将ButtonField的CommandName属性设置为“Select”,以触发SelectedIndexChanged事件

<asp:ButtonField ButtonType="Button" Text="Select"  CommandName="Select" />


chriskent,这是我在gridview上的全部内容:@Doug Ancil我已经用一些适合您的解决方案更新了我的答案。
<asp:GridView ID="GridView1" runat="server" HorizontalAlign="Center"
    onselectedindexchanged="GridView1_SelectedIndexChanged"
    AutoGenerateSelectButton="True">
</asp:GridView>
<asp:ButtonField ButtonType="Button" Text="Select"  CommandName="Select" />