Forum: AJAX |
Thema:
AW: AW: AW: AW: Artikel aus der ASP.Net Proffesional |
Von:
Thomas Scherner (
13.02.2008 11:57) |
Hallo Thomas,
ich war da nicht so elegant :-( sondern habe es direkt in die Seite gebaut mit einem VB Cod:
Default.aspx:
-------------------------
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table style="width: 647px; position: static; height: 79px">
<tr>
<td style="width: 67px">
PLZ:</td>
<td style="width: 233px">
<asp:TextBox ID="txtplz" runat="server" Style="position: static" OnTextChanged="search_ort" AutoPostBack="True"></asp:TextBox></td>
<td style="width: 269px">
<asp:TextBox ID="TextBox2" runat="server" Style="position: static"></asp:TextBox></td>
</tr>
<tr>
<td style="width: 67px">
Wohnort:</td>
<td style="width: 233px">
<asp:ListBox ID="ListBox1" runat="server" Height="27px" Style="position: static"
Width="154px" ></asp:ListBox></td>
<td style="width: 269px">
<asp:TextBox ID="TextBox1" runat="server" Style="position: static"></asp:TextBox></td>
</tr>
<tr>
<td style="width: 67px">
Label Ort</td>
<td style="width: 233px">
<asp:Label ID="Label1" runat="server" Style="position: static" Text="Label" Width="136px"></asp:Label></td>
<td style="width: 269px">
<asp:DropDownList ID="ddl1" runat="server" Style="position: static">
</asp:DropDownList></td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
Default.aspx.vb:
---------------
Hier hatte ich das Problem des Proxys was ich umgehen muss.
Das habe ich jetzt hier raus genommen.
Imports System.Xml
Imports System.Net
Imports System.Data
Imports System.IO
Partial Class _Default
Inherits System.Web.UI.Page
Public MyWebRes As HttpWebResponse
Public req As HttpWebRequest
Sub suche(ByVal strXML As String)
' liest aus dem übergebenen XML-Stream die Funktion aus
Dim doc As New XmlDocument
Dim plz As String
plz = txtplz.Text
doc.LoadXml(strXML)
Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("name", strXML)
Dim nodeList As XmlNodeList
Dim root As XmlElement = doc.DocumentElement
nodeList = root.SelectNodes("/geonames/code/name", nsmgr)
Dim name As XmlNode
For Each name In nodeList
ListBox1.Items.Add(name.InnerText)
ddl1.Items.Add(name.InnerText)
Label1.Text = name.InnerText
TextBox1.Text = name.InnerText
Next
End Sub
Sub search()
Dim plz As String
plz = txtplz.Text
req = WebRequest.Create("http://ws.geonames.org/postalCodeSearch?postalcode=" & plz & "&country=DE")
req.KeepAlive = True
req.Method = "Post"
MyWebRes = req.GetResponse()
Dim hwrResponse As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
Dim responseStream As IO.Stream = hwrResponse.GetResponseStream()
Dim sr As IO.StreamReader = New IO.StreamReader(responseStream)
Dim respString As String = sr.ReadToEnd()
ListBox1.Items.Clear()
ddl1.Items.Clear()
Call suche(respString)
MyWebRes.Close()
End Sub
Protected Sub search_ort(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtplz.TextChanged
Call search()
TextBox2.Focus()
End Sub
End Class
Habe es beim verlassen des Eingabefeldes gesetzt.
Also wird direkt der Ort gesucht. Sollten es mehr sein wird das Dropdown gefüllt. Es geht sicher eleganter doch anders kann ich es leider nicht. Drauf zu achten wäre auch, das wenn der Service nicht zu Verfügung steht ein Handeintrag möglich sein sollte bzw. Zusätze zum Ort.
Dafür habe ich leider keine Zeit bis jetzt gehabt.
Gruß
Thomas
Ich bin ein Newbie . Aber jeder hat mal angefangen. Gruß & Dank Thomas
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!