2011-01-02 8 views
0

ich eine asp.net Webformular im habe in VB arbeiten .., wie man verschiedene Seiten umleiten, wenn ich zwei imagebuttons in gridview1 in asp.net verwenden (VB)

Ich habe eine Gridview mit Statusvorlagenfeld .. Ich habe zwei Bild-Taste in der gleichen Vorlage Feld in Artikel Vorlagen ...

ich möchte, wenn ich auf Bild klicken Button1 ich Redirect default.aspx?

und wenn ich auf Imagebutton2 klicke, werde ich auf default2.aspx umgeleitet?

Ich habe tat dies ... aber ...

Me.Response.Redirect("Select_seats.aspx?" & "s_no=" & GridView1.SelectedRow.Cells(9).Text.ToString & "&" & "journey=" & Label6.Text & "&" & "seater=" & label4.Text & "&" & "sleeper=" & label2.Text & "&" & "service=" & lab5.Text.ToString) 

Das Problem dabei ist:

, dass die beiden Bild-Taste auf derselben Seite umleiten wäre .... wenn ich genommen Diese Abfrage in der Gridview Auswahl Index geändert?

+0

Sie sollten uns Ihren aspx-Code aus der Gridview zeigen. –

Antwort

1

Beim Arbeiten mit dem GridView-Steuerelement von ASP.Net habe ich oft festgestellt, dass die folgende Methode ziemlich effektiv ist.

einen Gridview mit der folgenden Definition Gegeben:

<asp:GridView runat="server" ID="grdTest"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Label runat="server" ID="lblParam1" Text="1"></asp:Label> 
       <asp:ImageButton runat="server" ID="ibtnButton1" ImageUrl="test1.jpg" CommandName="firstButton" CommandArgument='<%#DataBinder.Eval(Container, "RowIndex")%>' /> 
       <br /> 
       <asp:Label runat="server" ID="lblParam2" Text="2"></asp:Label> 
       <asp:ImageButton runat="server" ID="ibtbButton2" ImageUrl="test2.jpg" CommandName="secondButton" CommandArgument='<%#DataBinder.Eval(Container, "RowIndex")%>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

Sie dann den RowCommand Veranstaltung Gridview verwenden kann, um zu bestimmen, welche Schaltfläche geklickt wurde. Beachten Sie die Werte CommandName und CommandArgument auf dem ImageButton. Die CommandName kann verwendet werden, um zu unterscheiden, auf welche Schaltfläche geklickt wurde, und CommandArgument kann verwendet werden, um zeilenspezifische Informationen zu ermitteln, z. B. einen identifizierenden Wert für die Zeile. Diese Information kann dem CommandArgument' using DataBinder.Eval` oder ähnlichen Mechanismus hinzugefügt werden.

Anschließend können Sie erfassen die RowCommand Ereignis und Redirect auf den Befehlsnamen und das Argument, so etwas wie dieses zu Grunde:

Protected Sub grdTest_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grdTest.RowCommand 
    Dim arg As String = e.CommandArgument 
    Dim rowIndex As Integer = Nothing 
    If Integer.TryParse(arg, rowIndex) Then 
     If e.CommandName = "firstButton" Then 
      Dim lblParm As Label = grdTest.Rows(rowIndex).FindControl("lblParam1") 
      If lblParm IsNot Nothing Then 
       Response.Redirect("Default.aspx?parm=" & lblParm.Text, False) 
      End If 
     ElseIf e.CommandName = "secondButton" Then 
      Dim lblParm As Label = grdTest.Rows(rowIndex).FindControl("lblParam2") 
      If lblParm IsNot Nothing Then 
       Response.Redirect("Default2.aspx?parm=" & lblParm.Text, False) 
      End If 
     End If 
    End If 
End Sub 

EDIT

ich den Beispielcode in der Steuerwerte abgerufen werden geändert Zeile, basierend auf den Fragen in Ihren Kommentaren. Ich habe das Befehlsargument für jede Schaltfläche den Zeilenindex innerhalb der Tabelle erstellt. Dadurch können Sie Steuerelemente innerhalb dieser Zeile innerhalb des 'RowCommand' -Ereignisses mithilfe des Namens des Steuerelements abrufen.

+0

Ich möchte mit dieser Abfrage auf diese Seite umleiten: – user559800

+0

Me.Response.Redirect ("Select_seats.aspx?" & "S_no =" & GridView1.SelectedRow.Cells (9) .Text.ToString & "&" & "Reise = "& Label6.Text &" & "&" seater = "& label4.Text &" & "&" sleeper = "& label2.Text &" & "&" service = "& lab5.Text.ToString) – user559800

Verwandte Themen