/ / Response.redirect wird nach dem Klicken auf die Schaltfläche "Zurück" weiter ausgelöst - vb.net

Response.redirect wird nach dem Klicken auf die Schaltfläche "Zurück" weiter ausgelöst - vb.net

Ich habe eine Dropdown-Liste mit Autopostback auf eingestelltwahr auf meiner aspx Seite. Wenn auf meiner aspx.vb-Seite ein Element in der ddl ausgewählt wird, wird der Benutzer zu der Datei umgeleitet, die dem Element zugeordnet ist, auf das er geklickt hat. Das alles funktioniert gut.

Wenn der Benutzer auf die Schaltfläche "Zurück" klickt, ist dies der Fallwie erwartet zum vorherigen Bildschirm zurückgebracht. Alles, was sie jetzt anklicken, leitet sie jedoch zurück zu der Datei, die sie ausgewählt haben, bevor sie auf die Schaltfläche "Zurück" klicken.

Hier ist die ddl auf der aspx-Seite:

asp: ListBox ID = "lbDocuments" runat = "server" Height = "75" Width = "500" Rows = "8" AutoPostBack = "True"

Und hier ist die ausgewählte Indexänderung im Code dahinter:

Private Sub listBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbDocuments.SelectedIndexChanged
Dim curItem As String = lbDocuments.SelectedItem.ToString()
Response.Redirect("file://\networkpathoffile" & curItem)
End Sub

Danke im Voraus!

BEARBEITEN*

Page Load - Ich habe oben mehrere Schaltflächen, die anstelle eines Registerkartenmenüs einen anderen Satz von Beschriftungen / Textfeldern öffnen.

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

If Not IsPostBack Then
DisplayUn.Visible = True
DisplayAgreem.Visible = False
DisplayFin.Visible = False
DisplayDoc.Visible = False
DisplayCon.Visible = False
DisplayJur.Visible = False
End If

CreateMainTable()
End Sub

ASPX-Datei

<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false"  CodeFile="AgreementAdmin.aspx.vb" Inherits="AgreementAdmin" %>

<%@ Register assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, namespace="System.Web.UI.DataVisualization.Charting" tagprefix="asp" %>

asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" Runat="Server">
</asp:Content>
asp:Content ID="Content3" ContentPlaceHolderID="MainContent" Runat="Server">

<section>

Filter by Craft Type: <asp:DropDownList ID="ddlType" runat="server" AutoPostBack="True">
<asp:ListItem>Item1</asp:ListItem>
<asp:ListItem>Item2</asp:ListItem>
<asp:ListItem>Item3</asp:ListItem>

</asp:DropDownList>


</section>
<section id="DisplayDoc" runat="server">
<asp:Table ID="tblDocuments" runat="server" Width="755px">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<asp:Label ID="lblAgreementOnFile" runat="server" Text="Agreement on File "></asp:Label></asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox ID="txtAgreementOnFile" runat="server"></asp:TextBox></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<asp:Label ID="lblDocuments" runat="server" Text="Documents"></asp:Label></asp:TableCell>
<asp:TableCell runat="server">
<asp:ListBox ID="lbDocuments" runat="server" Height="75" Width="500" Rows="8" SelectionMode="Single" AutoPostBack="True" "></asp:ListBox></asp:TableCell>
</asp:TableRow>
</asp:Table>


</section>

Antworten:

0 für die Antwort № 1

Wenn ich mich nicht irre, werden nicht ausgewählte IndexChanged-Ereignisse beim Laden der Seite automatisch ausgelöst? Warum nicht angeben, dass der Standardwert (oder der Wert bei Index 0) die Umleitung nicht auslöst?

Private Sub listBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbDocuments.SelectedIndexChanged
Dim curItem As String = lbDocuments.SelectedItem.ToString()
lbDocuments.ClearSelection()
If lbDocuments.SelectedItem <> 0 Then
Response.Redirect("file://networkpathoffile" & curItem)
End If
End Sub

-1 für die Antwort № 2

Das Problem kann dadurch verursacht werden, dass das ausgewählte Element beim Zurückklicken in der ListBox ausgewählt bleibt. Versuchen Sie, die Auswahl vor der Antwort zu löschen.

Private Sub listBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbDocuments.SelectedIndexChanged
Dim curItem As String = lbDocuments.SelectedItem.ToString()
lbDocuments.ClearSelection()
Response.Redirect("file://\networkpathoffile" & curItem)
End Sub