Frage

Ich bin eine Suchseite mit einem Textfeld Bau und einem Knopf für jetzt und wahrscheinlich ein Drop-Down-Ergebnisse filtern später. Ich habe meine Schaltfläche PostBackUrl meine Suchseite eingestellt (~ / search.aspx). Gibt es einen einfachen Weg, um den Wert in dem Textfeld auf die Suchseite?

passieren
War es hilfreich?

Lösung

Wenn Sie die PostBackUrl Satz auf Ihrem Knopf, dann das Suchfeld Feld auf der ersten Seite, und alle anderen Formularfelder auf dieser Seite, sind bereits zu Ihrer Suche Seite veröffentlicht werden. Der Trick ist immer der Zugang zu ihnen in dem Code-Behind für Ihre search.aspx Seite.

if (Page.PreviousPage != null)
{
    TextBox SourceTextBox = 
        (TextBox)Page.PreviousPage.FindControl("TextBox1");
    if (SourceTextBox != null)
    {
        Label1.Text = SourceTextBox.Text;
    }
}

Das ist ein Weg. Es gibt einige Verknüpfungen zu, wie die PreviousPageType Direktive an der Spitze Ihrer search.aspx Seite mit:

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 

Weitere Informationen darüber, wie das nutzen, sowie die erste Methode, finden Sie hier:

http://msdn.microsoft.com/en-us/library/ ms178139.aspx

Andere Tipps

können Sie in der Lage sein useSubmitBehavior = „true“ zu verwenden, und ein Verfahren setzen = „get“ auf dem Formular. auf diese Weise wird es den Browser einreicht Verhalten verwenden und die Werte der Textbox das auf den Query-String

anhänge

Sie können auch einige JavaScript verwenden, um dies zu erreichen, indem die Enter-Taste Tastendruckereignis in der Textbox Feld zu kontrollieren. Sie könnten dies erweitern als auch die Validierung des Textes in der Textbox auszuführen. (Dieses Beispiel wird unter Verwendung von jQuery )

$(document).ready(function(){
    // Event Handlers to allow searching after pressing Enter key
    $("#myTextBoxID").bind("keypress", function(e){
        switch (e.keyCode){
        case (13):
            // Execute code here ...
            break;
        default:
            break;
        }
    });
});

das Problem gelöst, die vorherige Seite „default.aspx“, aber die Steuerung nicht auf dieser Seite nicht aufzuhalten. Da ich Masterseiten verwenden, muss ich wählen Master statt PreviousPage .

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If PreviousPage IsNot Nothing Then
      Dim txtBoxSrc As New TextBox
      txtBoxSrc = CType(Master.FindControl("searchbox"), TextBox)
      If txtBoxSrc IsNot Nothing Then
          MsgBox(txtBoxSrc.Text)
      End If
  End If
End Sub

<div class="gsSearch">
    <asp:TextBox ID="searchbox" runat="server"></asp:TextBox>
    <asp:Button ID="searchbutton" runat="server" Text="search" 
         UseSubmitBehavior="true" PostBackUrl="~/search.aspx" />
</div>

Ich habe keine Ahnung, warum Sie einen NULL-Verweis in diesem Code, bloß mit meinem VB Nicht-Wissen bekommen würde, aber ich werde versuchen, eine leichte Modifikation machen Sie zu versuchen, der Lage sein könnten.

Ich weiß, dass die Findcontrol den Typ Steuerung kehrt .. vielleicht können Sie es in eine bestimmte Art zu boxen warten.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If PreviousPage IsNot Nothing Then
      Dim txtBoxSrc As New Control
      txtBoxSrc = PreviousPage.FindControl("searchbox")
      If txtBoxSrc IsNot Nothing Then
          MsgBox((CType(txtBoxSrc, TextBox)).Text)
      End If
  End If
End Sub

<div class="gsSearch">
    <asp:TextBox ID="searchbox" runat="server"></asp:TextBox>
    <asp:Button ID="searchbutton" runat="server" Text="search" 
         UseSubmitBehavior="true" PostBackUrl="~/search.aspx" />
</div>

Was ist, diese (vb, sorry):

Gibt den Wert aus dem Textfeld über Code-Behind, und einfach die PostBackUrl setzen auf die Steuerung wie folgt aus:

dim textval = SourceTextBox.text
dim myparam = "George"

searchbutton.PostBackUrl = "~/search.aspx?myparam=" & myparam

Sie können nur, dass in der Funktion gesetzt, die die Schaltfläche klicken Griffe, nicht wahr?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top