Suchfunktion für Website in ASP Net C#...Hilfe



  • Hallo Jungs,

    ich hänge nun schon sehr lange an meiner Seite.
    Ich arbeite mit ASP Net in C# und möchte gern ein Suchfunktion auf meiner Website haben.
    Wie bekomme ich das hin.
    Hatte in einer normalen C# Anwendung das hinbekommen, nur nicht in der ASP Net Anwendung, weil ich da die Select() Methode für die TextBox nicht zur Verfügung habe.
    Hier mal das Beispiel aus meiner C# Anwendung...

    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
    
            public int _posStart = 0;
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                    int _posA = 0;
    
                    string _suchText = textBox2.Text;
    
                    try
                    {
                        _posA = textBox2.Text.IndexOf(textBox1.Text, _posStart);
                        textBox2.Select();
                        textBox2.Select(_posA, textBox1.Text.Length);
                        _posStart = _posA + textBox1.Text.Length;
                    }
    
                    catch(Exception ex)
                    {
                        MessageBox.Show("Die suche ist beendet");
                        _posStart = 0;
                    }
            }
        }
    }
    

    Könnte mir jemand mal einen Tipp geben wie ich meine Website durchsuchen kann?

    Vielen Dank...

    Gruß, Martin



  • Da du dich in ASP.Net bewegst, wirst du den Content deiner Seite entweder rein client-seitig durchsuchen müssen oder du machst es per Postback.

    Beim Auswerten musst du den Teil der einen Treffer ergibt dann mit HTML-Mittlen hervorheben oder wenn du client-seitig arbeitest, kannst das TextRange-Objekt nehmen und so den TExt markieren.



  • Vielen Dank PuppetMaster2k für die Antwort.

    Aber was ist den die beste Lösung.
    PostBack?
    Mir reicht es völlig, wenn nur auf der grade aktuellen Seite gesucht wird.
    Könntest Du mir mal ein wenig mit Code helfen.
    Oder wo könnte ich mir da mal ein Beispiel angucken?

    Vielen Dank nochmal ! ! !

    Gruß, Martin



  • Postback heißt die Seite neuladen und somit wirst du irgendwie deinen Content von der Seite auslesen müssen.

    private void _button1_ClickEvent(object sender, EventArgs e)
    {
        if (Form.InnerHtml.Contains(deinSuchString))
        {
            // Position ermitteln und dann z.B. fett machen mit strong-Tag
        }
    }
    

    Ich würde die JavaScript-Variante bevorzugen. Die ist natürlich wesentlich schneller, aber unpraktisch, wenn der User kein JS zulässt. Hier kannst du auch einfach den Content auf Cleitnseite durchsuchen und mit ein paar Handgriffen den Text markieren.



  • Vielen, vielen Dank, das klingt doch schon mal nach was, damit kann ich doch schon mal arbeiten.
    Nun habe ich wenigstens schon mal einen Anhaltspunkt.
    Werde mir das mal angucken, danke.

    Hab mir auch grade überlegt, von meiner Seite aus eine externe Suche über Google zu ermöglichen.
    Sprich...
    Der User gibt einen Suchbegriff auf meiner Seite ein und wird dann mit dem Suchbegriff auf die Google.de Seite weitergeleitet und die Suche wird ausgeführt.
    Ich das statthaft oder könnte Google damit ein Problem haben?

    Response.Redirect("http://www.google.de/search?hl=de&q=" + Text_Such.Text + "&meta=");
    

    Gruß, Martin



  • Bevor du das mit Google einbaust, schau dich bei Google mal genauer um. Da wird so eine integriete Seiten-Suche schon angeboten. Genau wie hier im Forum. 🙂



  • Wie kann ich die Position ermitteln und den strong Fett machen


Anmelden zum Antworten