扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Nikhil Kothari 来源:MSDN 2007年9月2日
关键字:
private sealed class WeatherDataSourceView : DataSourceView { private WeatherDataSource _owner; public WeatherDataSourceView(WeatherDataSource owner, string viewName) : base(owner, viewName) { _owner = owner; } protected override IEnumerable ExecuteSelect( DataSourceSelectArguments arguments) { arguments.RaiseUnsupportedCapabilitiesError(this); Weather weatherObject = GetWeather(); return new Weather[] { weatherObject }; } internal Weather GetWeather() { string zipCode = _owner.ZipCode; if (zipCode.Length == 0) { throw new InvalidOperationException(); } WeatherService weatherService = new WeatherService(zipCode); return weatherService.GetWeather(); } internal void RaiseChangedEvent() { OnDataSourceViewChanged(EventArgs.Empty); } } |
Zip Code: <asp:TextBox runat="server" id="zipCodeTextBox" /> <asp:Button runat="server" onclick="OnLookupButtonClick" Text="查找" /> <hr /> <asp:FormView runat="server" DataSourceID="weatherDS"> <ItemTemplate> <asp:Label runat="server" Text='<%# Eval("Temperature", "当前温度是 {0}。") %>' /> </ItemTemplate> </asp:FormView> <nk:WeatherDataSource runat="server" id="weatherDS" ZipCode="98052" /> <script runat="server"> private void OnLookupButtonClick(object sender, EventArgs e) { weatherDS.ZipCode = zipCodeTextBox.Text.Trim(); } </script> |
此代码设置了邮政编码来响应用户输入,这会使数据源发出更改通知,从而使绑定的 FormView 控件执行数据绑定并更改显示。
现在,数据访问代码就被封装在数据源控件中。此外,通过此模型,weather.com(英文)能够发布一个组件,该组件还可以封装特定于其服务的详细信息。但愿它会好用。此外,抽象的数据源界面允许 FormView 仅针对天气数据进行工作。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。