65.9K
CodeProject 正在变化。 阅读更多。
Home

显示物理地址的地址簿

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.74/5 (8投票s)

2004年10月3日

2分钟阅读

viewsIcon

50960

本文档展示了如何在您的应用程序中使用MapQuest QueryString。

引言

您是否创建过通讯录?它包含什么?地址、姓名、电子邮件,也许您还可以使用您的通讯录发送电子邮件,对吧?如果您的表格中有一个人员列表,其中包含他们的地址,并且当您点击某个人的信息时,您可以查看他的物理地址,那将会是多么酷的事情。在本文中,我将向您展示如何轻松地将参数附加到发送到MapQuest的请求中。您可以使用任何类型的地址查找网站,我将在我的示例中使用MapQuest。

创建数据库

让我们首先创建一个简单的数据库,其中包含人员ID、姓名和邮政编码。您可以使用一个人的完整地址,但我注意到大多数时候,像MapQuest这样的服务无法找到实际地址。我将使用邮政编码来查找地址。在数据库中输入一些数据,我们就可以开始了!

在页面上显示数据

让我们使用DataGrid在页面上显示数据。您在下面看到的所有地址和邮政编码都已添加到您的通讯录中。假设您的邮政编码是77304。因此,我们将找到从您的邮政编码到您通讯录中邮政编码的路线。以下是您在页面上显示DataGrid时它的外观。

Sample screenshot

重定向到MapQuest

我对此进行了思考,但没有找到更好的重定向到路线页面方法。您可以执行此操作的几种方法,例如在新弹出窗口或框架中打开路线页面。我选择了一个新页面(不是弹出窗口),因为某些浏览器具有弹出窗口阻止程序,因此在这些浏览器上,弹出窗口将不会打开,或者换句话说,弹出窗口将被阻止。框架也存在一些问题,因为某些浏览器不支持框架。考虑到这些原因,我选择将同一页面重定向到路线页面。

实现DataGrid选择列代码

现在是编写代码的时候了,在DataGridSelectedIndexChanged事件中,编写以下代码

private void ChangeSelection(object sender, System.EventArgs e)
{
    // gets the selected ZipCode from the DataGrid selected row

    string otherZipCode = myDataGrid.SelectedItem.Cells[2].Text;

    // This is the URL in which we are going to embed our parameters.

    string url = "http://www.mapquest.com/directions/main.adp?" + 
                 "go=1&do=nw&un=m&2tabval=address&cl=EN" + 
                 "&ct=NA&1tabval=address&1y=US&" + 
                 "1a=&1c=&1s=&1z="+myZipCode+ 
                 "&1ah=&2y=US&2a=&2c=&2s=&2z="+
                 otherZipCode + "&2ah=&idx=0&" + 
                 "id=4160c6ba-001df-01660-cdbcf364&" + 
                 "aid=4160c6ba-001e0-01660-cdbcf364"; 

    // Redirec to the other page

    Response.Redirect(url); 

}

是的,您需要做的就这些了。我只是将包含myZipCodeotherZipCode值的变量嵌入到URL中,很简单,对吧!

© . All rights reserved.