Laden...

Variablenübergabe von ASP an ASPX für AutoCompleter in .NET c#

Erstellt von Subyte vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.137 Views
S
Subyte Themenstarter:in
1 Beiträge seit 2010
vor 14 Jahren
Variablenübergabe von ASP an ASPX für AutoCompleter in .NET c#

Hallo zusammen,
ich habe folgendes Problem.

Ich habe mehrere ASP-Seiten und übergebe wichtige Parameter über die URL und hole sie mir mit "Request.Querystring" wieder zurück -> Klappt alles super.

Für den Ajax-Autocompleter wird ein Webservice benötigt. Diesem Webservice sollen alle möglichen Eingaben direkt aus einer Datenbank ausgelesen werden. Das klappt auch alles.
Diese Datenbank-Abfrage soll nun durch eine WHERE-Klausel noch weiter spezifizert werden, in diesem konkreten Fall:

SELECT xyz FROM Tabelle WHERE FirmenID = ID_der_Firma

diese ID_der_Firma soll jetzt irgendwie von dem ASP-Formular übergeben werden... Frage: WIE? 😄

Hier mal ein paar code Auszüge:

TextBox in der das AutoComplete klappen soll (und auch mit statischer ID funktioniert):

                
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="TextBox2_AutoCompleteExtender" runat="server" 
                    TargetControlID="TextBox2" 
                    ServicePath="~/WebService1.asmx" 
                    ServiceMethod="BestimmteIDs" 
                    MinimumPrefixLength="1" 
                    CompletionSetCount="15"></asp:AutoCompleteExtender>

WebService-Datei:


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Collections.Generic;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.OleDb;

namespace Dashboard_web_1
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        private string firmenID = "";
        public string FirmenID
        {
            get
            {
                return firmenID;
            }
            set
            {
                firmenID = value;
            }
        }
                
        public void IDsetzen()
        {
            //FirmenID = HttpContext.Current.Request.QueryString["Uebergabe"];
        }
        
        [WebMethod]
        public string[] BestimmteIDs(string prefixText, int count)
        {
            //FirmenID = Request.QueryString["Uebergabe"];
            //FirmenID = HttpContext.Current.Request.QueryString["Uebergabe"];
            
            string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=TestDB.mdb";
            string strAccessSelect = "SELECT DISTINCT xyz FROM Daten WHERE FirmenID=/*VARIABLE*/]";
            OleDbConnection aAccessConn = new OleDbConnection(strAccessConn);
            OleDbCommand aAccessCommand = new OleDbCommand(strAccessSelect, aAccessConn);
            OleDbDataReader aReader;
            aAccessConn.Open();
            List<string> IDs = new List<string>();
            try
            {
                aReader = aAccessCommand.ExecuteReader();
                while (aReader.Read())
                {
                    IDs.Add(aReader["xyz"].ToString());
                }
            }
            finally
            {
                aAccessConn.Close();
            }
            

            ArrayList filteredList = new ArrayList();
            foreach (string s in IDs)
            {
                if (s.ToLower().StartsWith(prefixText.ToLower()))
                    filteredList.Add(s);
            }
            return (string[])filteredList.ToArray(typeof(string));
        }
    }
}

Ich kriege einfach keinen Wert übergeben, den ich für die fettgedruckte Variable in der DB-Abfrage benötige..

// Kommentiert finden sich versuche, wie es evtl hätte gehen können. Erfolglos

Danke für jede Hilfe im Voraus!!

edit: Problem ist auch, dass ich die Funktion nicht einfach um eine Variable erweitern kann, da ich den AutoCompleter nicht verstehe / nicht eingreifen kann, was er wo übergeben soll.
Daher hatte ich die Idee die Variable vorher zu deklarieren und durch eine andere Webrequest-Funktion vorher die FirmenID zu setzen. Aber auch hier weiß ich nicht wie...

1.433 Beiträge seit 2006
vor 14 Jahren

Sollte eien WebMethode nicht per Definition static sein?

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt