做网站编辑的时候没保存怎么,免费动漫网站,wordpress固定链接标签加上页面,软件外包保密协议概述 Silverlight 2 Beta 1版本发布了#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython#xff0c;对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig… 概述 Silverlight 2 Beta 1版本发布了无论从Runtime还是Tools都给我们带来了很多的惊喜如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlight 2系列》文章将从Silverlight 2基础知识、数据与通信、自定义控件、动画、图形图像等几个方面带您快速进入Silverlight 2开发。 本节将综合前面几篇介绍与浏览器交互部分内容做一个综合示例——Live Search 准备知识 在本示例中我们将通过调用Live Search API在Silverlight中动态创建DOM结构将搜索的结果展现出来。在使用Live Search API之前需要先去Live Search Developer Center申请一个应用程序ID。 申请完成后应用程序ID大约在10分钟左右生效。关于Live Search API的有关详细信息请大家参考这里。 编写ASMX 直接调用API返回的信息可能有很多为了简单起见我们对返回的结果做一些处理编写一个SearchResultItem类 public class SearchResultItem
{public string Title { get; set; }public string Url { get; set; }public string Description { get; set; }
} 添加对Live Search API的Service引用地址为http://soap.search.live.com/webservices.asmx?wsdl。 在ASMX中对返回的结果进行一些处理Silverlight程序最后将直接调用ASMX。在调用Live Search时需要指定应用程序ID以及本地化的信息等查询的参数将在Silverlight程序中调用时传入。 [WebMethod]
public SearchResultItem[] DoSearch(string query)
{MSNSearchPortTypeClient s new MSNSearchPortTypeClient();SearchRequest searchRequest new SearchRequest();int arraySize 1;SourceRequest[] sr new SourceRequest[arraySize];sr[0] new SourceRequest();sr[0].Source SourceType.Web;searchRequest.Query query;searchRequest.Requests sr;searchRequest.AppID C0680205851CCC0E38946DB8FF74156C1C826A86;searchRequest.CultureInfo zh-CN;SearchResponse searchResponse;searchResponse s.Search(searchRequest);ListSearchResultItem lists new ListSearchResultItem();foreach (SourceResponse sourceResponse in searchResponse.Responses){Result[] sourceResults sourceResponse.Results;foreach (Result sourceResult in sourceResults){SearchResultItem item new SearchResultItem();if ((sourceResult.Title ! null) (sourceResult.Title ! String.Empty))item.Title sourceResult.Title;if ((sourceResult.Description ! null) (sourceResult.Description ! String.Empty))item.Description sourceResult.Description;if ((sourceResult.Url ! null) (sourceResult.Url ! String.Empty))item.Url sourceResult.Url;lists.Add(item);}}return lists.ToArray();
} 测试一下我们的服务是否正常 修改测试页 在测试ASPX中修改Silverlight插件的样式控制并添加一个div用来显示搜索的结果 div styleheight:100%;asp:Silverlight IDXaml1 runatserver Source~/ClientBin/TerryLee.SilverlightGoogleSearch.xapVersion2.0 Width857 Height140 /div idresult/div
/div 定义几个简单的样式 style typetext/css#result{margin-left:20px;}.urlstyle{color:#59990E;}.itemstyle{border-bottom:dotted 1px #59990E;margin-bottom:20px;}
/style 实现Silverlight程序 编写一个简单的Silverlight界面使其看起来如图所示 XAML声明如下 Grid x:NameLayoutRoot BackgroundWhiteGrid.RowDefinitionsRowDefinition Height55/RowDefinitionRowDefinition Height50/RowDefinitionRowDefinition Height35/RowDefinition/Grid.RowDefinitionsGrid.ColumnDefinitionsColumnDefinition Width*/ColumnDefinition/Grid.ColumnDefinitionsImage SourceLiveSearch.png Grid.Column0/ImageStackPanel Grid.Row1 OrientationHorizontalTextBox x:NametxtQuery Width400 Height35Margin50 0 0 0 BorderBrush#3F7801/TextBoxButton x:NamebtnSearch Width120 Height35Background#62A21D Margin20 0 0 0ContentSearch FontSize16 ClickbtnSearch_Click/Button/StackPanelTextBlock Grid.Row2 Text网页搜索结果 Foreground#59990EFontSize16 Margin20 0 0 0/TextBlock
/Grid 在Silverlight项目中添加对于ASMX的引用并编写“Search”按钮的实现对于如何调用ASMX可以参考一步一步学Silverlight 2系列15数据与通信之ASMX。动态创建DOM结构并将结果显示出来 private void btnSearch_Click(object sender, RoutedEventArgs e)
{LiveSearchWebServiceSoapClient client new LiveSearchWebServiceSoapClient();client.DoSearchCompleted new EventHandlerDoSearchCompletedEventArgs(client_DoSearchCompleted);client.DoSearchAsync(this.txtQuery.Text);
}void client_DoSearchCompleted(object sender, DoSearchCompletedEventArgs e)
{if (e.Error null){SearchResultItem[] results e.Result as SearchResultItem[];HtmlElement result HtmlPage.Document.GetElementById(result);foreach (SearchResultItem item in results){HtmlElement itemElement HtmlPage.Document.CreateElement(div);itemElement.CssClass itemstyle;HtmlElement titleElement HtmlPage.Document.CreateElement(a);titleElement.SetAttribute(href,item.Url);titleElement.SetAttribute(innerText,item.Title);HtmlElement descriptElement HtmlPage.Document.CreateElement(div);descriptElement.SetAttribute(innerText,item.Description);HtmlElement urlElement HtmlPage.Document.CreateElement(span);urlElement.SetAttribute(innerText,item.Url);urlElement.CssClass urlstyle;itemElement.AppendChild(titleElement);itemElement.AppendChild(descriptElement);itemElement.AppendChild(urlElement);result.AppendChild(itemElement);}}
} 运行看一下效果查询博客园 结束语 本文综合了前面关于浏览器集成以及数据与通信部分的内容开发了一个综合的示例——Live Search。你可以从这里下载本文示例代码。 作者TerryLee出处http://terrylee.cnblogs.com 本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文连接否则保留追究法律责任的权利。 分类: [03] 银光点亮世界 转载于:https://www.cnblogs.com/meimao5211/p/3427976.html