Ajax.Data.Controls.GridView で WebService の値を表示する。


<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference InlineScript="True" Path="WebService.asmx" />
</Services>
</asp:ScriptManager>
<input type="text" id="zipCD" />
<input type="button" id="cmdSearch" value="search" onclick="searchAddress()" />
<AjaxData:GridView ID="GridView1" runat="server">
</AjaxData:GridView>
<script type="text/javascript">
function searchAddress() {
var zipCD = $get("zipCD");
WebService.GetAddress(zipCD.value,
function(result) {
if (result.length == 0) {
alert("該当郵便番号が存在しません。");
return;
}
// Ajax.Data.Controls.GridView1
var grid = $find("GridView1");
grid.set_dataSource(result);
grid.dataBind();
},

function(e) {
alert("検索失敗" + e.get_message());
});
}
</script>

WebService.GetAddress は 郵便番号から住所を返してくれる WebService


<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Script.Services.ScriptService()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class WebService
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Function GetAddress(ByVal zipCD As String) As Address()
Using Context = New ComuplusDataContext()
Return Context.Addresses.Where(Function(addr) addr.ZipCD Like zipCD & "*").ToArray()
End Using
End Function
End Class