Pregunta

Sin embargo, he estado buscando una solución para esto por un tiempo y he visto muchas publicaciones que me muestran cómo hacerlo, pero no puedo hacer que mi evento seleccionado Idexchanged se dispare cuando se cambia la lista desplegable.

El DropDownList AutoPostback está configurado en True, he seguido el código en la publicación a continuación también:Enlace para publicar

Aquí está mi código:

.Aspx

    <asp:GridView ID="gvCases" DataKeyNames="UserId" runat="server" AutoGenerateColumns="False" 
    BorderWidth="0px" CssClass="gridList" GridLines="None">
    <AlternatingRowStyle BackColor="#F7F7F7" />
    <Columns>

        <asp:BoundField DataField="id" HeaderText="Case Ref" />

        <asp:TemplateField HeaderText="Name">
            <ItemTemplate>
                <asp:Label ID="clientName" runat="server" Text="Label"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:BoundField DataField="company" HeaderText="Company" />

        <asp:TemplateField HeaderText="Order Date">
            <ItemTemplate>
                <asp:Label ID="dateTime" runat="server" Text="Label"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Case Owner">
            <ItemTemplate>
                <asp:DropDownList ID="iconUsers" runat="server" OnSelectedIndexChanged="iconUsers_SelectedIndexChanged">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:Button ID="btnDetails" runat="server" CausesValidation="False" Text="Details" />
            </ItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:Button ID="btnSchedule" runat="server" CausesValidation="False" Text="Schedule" />
            </ItemTemplate>
        </asp:TemplateField>



    </Columns>
</asp:GridView>

.Vb

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


    If (Request.IsAuthenticated = False) Then
        Response.Redirect("~/admin/default.aspx")
    End If


    Dim keypadSQL As SqlConnection = New SqlConnection()
    keypadSQL.ConnectionString = ConfigurationManager.ConnectionStrings("connKeypad").ConnectionString()


    Dim cmdActive As SqlCommand = New SqlCommand()
    cmdActive.Connection = keypadSQL
    cmdActive.CommandText = "spCasesActive"
    cmdActive.CommandType = CommandType.StoredProcedure


    Dim daCases As SqlDataAdapter = New SqlDataAdapter
    daCases.SelectCommand = cmdActive

    Dim dsCases As DataSet = New DataSet()
    daCases.Fill(dsCases, "CaseList")

    Dim CaseTotal As Integer
    CaseTotal = dsCases.Tables(0).Rows.Count

    If CaseTotal = 1 Then
        iCaseTotal.InnerHtml = CaseTotal & " Case"
    Else
        iCaseTotal.InnerHtml = CaseTotal & " Cases"
    End If

    gvCases.DataSource = dsCases
    gvCases.DataBind()
    cmdActive.Dispose()


    If Page.IsPostBack Then

    End If

End Sub

Protected Sub gvCases_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvCases.RowDataBound

    If e.Row.RowType = DataControlRowType.Header Then

        gvCases.Columns(5).ItemStyle.Width() = "60"
        gvCases.Columns(6).ItemStyle.Width() = "70"

    End If

    If e.Row.RowType = DataControlRowType.DataRow Then

        Dim rowView As DataRowView = CType(e.Row.DataItem, DataRowView)

        Dim strClientName As String
        Dim clientName As Label
        strClientName = rowView("firstname") & " " & rowView("lastname")
        clientName = CType(e.Row.FindControl("clientName"), Label)
        clientName.Text = strClientName

        Dim strDateTime As String
        Dim dateTime As Label
        strDateTime = rowView("CaseSent")
        dateTime = CType(e.Row.FindControl("dateTime"), Label)
        dateTime.Text = FormatDateTime(strDateTime, DateFormat.ShortDate) & "<br />" & FormatDateTime(strDateTime, DateFormat.ShortTime)

        gvCases.Columns(3).ItemStyle.Font.Size = 8
        gvCases.Columns(5).ControlStyle.CssClass = "btnEdit"
        gvCases.Columns(6).ControlStyle.CssClass = "btnSchedule"

        Dim intUserId As String
        intUserId = Convert.ToString(gvCases.DataKeys(e.Row.RowIndex).Value)



        Dim cmd As New SqlCommand("SELECT id, Firstname, Lastname, Firstname + ' ' + Lastname As FullName FROM [users_icon] ORDER BY Firstname, Lastname", New SqlConnection(ConfigurationManager.ConnectionStrings("connKeypad").ConnectionString()))
        cmd.Connection.Open()

        Dim ddlValues As SqlDataReader
        ddlValues = cmd.ExecuteReader()

        Dim iconUsers As DropDownList
        iconUsers = CType(e.Row.FindControl("iconUsers"), DropDownList)
        iconUsers.Style.Add("font-size", "11px")
        iconUsers.DataSource = ddlValues
        iconUsers.DataValueField = "id"
        iconUsers.DataTextField = "FullName"
        iconUsers.DataBind()

        Dim ListItem1 = New ListItem("Select Case Owner", "0")
        iconUsers.Items.Insert("0", ListItem1)
        iconUsers.AutoPostBack = True
        If IsDBNull(rowView("CaseOwner")) Then
            iconUsers.SelectedValue = 0
        Else
            iconUsers.SelectedValue = rowView("CaseOwner")
        End If

        AddHandler iconUsers.SelectedIndexChanged, AddressOf iconUsers_SelectedIndexChanged

        cmd.Connection.Close()
        cmd.Connection.Dispose()


        Dim btnDetails As Button = CType(e.Row.FindControl("btnDetails"), Button)
        btnDetails.PostBackUrl = "~/admin/detail.aspx?uid=" & intUserId

        Dim LabelAddress As Button = CType(e.Row.FindControl("btnSchedule"), Button)
        LabelAddress.PostBackUrl = "~/admin/schedule.aspx?uid=" & intUserId

    End If

End Sub

Protected Sub iconUsers_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

    Response.Write("Function Called")

End Sub

Gracias por cualquier ayuda. J.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top