微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SilverLight中数据与通信之WebClient

SilverLight中数据与通信之WebClient

 

1.       新建一个处理类BookHandler.ashx

注意:IhttpHandler要求必须实现接口ProcessRequest(HttpContext context)bool IsReusable

 

  public class BookHandler : IHttpHandler

    {

        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "text/plain";

            context.Response.Write(PriceList[Int32.Parse(context.Request.QueryString["No"])]);

        }

 

        public bool IsReusable

        {

            get

            {

                return false;

            }

        }

 

        public static readonly string[] PriceList = new string[] {

            "66.00",

            "78.30",

            "56.50",

            "28.80",

            "77.00"

            };

}

 

 

2.       调用

前台代码

<Grid x:Name="LayoutRoot" Background="#46461F">

 

        <Grid.RowDeFinitions>

            <RowDeFinition Height="40"></RowDeFinition>

            <RowDeFinition Height="*"></RowDeFinition>

            <RowDeFinition Height="40"></RowDeFinition>

        </Grid.RowDeFinitions>

        <Grid.ColumnDeFinitions>

            <ColumnDeFinition></ColumnDeFinition>

        </Grid.ColumnDeFinitions>

        <Border Grid.Row="0" Grid.Column="0" CornerRadius="15"

            Width="240" Height="36"

            Margin="20 0 0 0" HorizontalAlignment="Left">

            <TextBlock Text="书籍列表" Foreground="White"

                   HorizontalAlignment="Left" VerticalAlignment="Center"

                   Margin="20 0 0 0"></TextBlock>

        </Border>

        <ListBox x:Name="Books" Grid.Row="1" Margin="40 10 10 10"

             SelectionChanged="Books_SelectionChanged">

            <ListBox.ItemTemplate>

                <DataTemplate>

                    <StackPanel>

                        <TextBlock Text="{Binding Name}" Height="32"></TextBlock>

                    </StackPanel>

                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>

        <Border Grid.Row="2" Grid.Column="0" CornerRadius="15"

            Width="240" Height="36" Background="Orange"

            Margin="20 0 0 0" HorizontalAlignment="Left">

            <TextBlock x:Name="lblPrice" Text="价格:" Foreground="White"

                   HorizontalAlignment="Left" VerticalAlignment="Center"

                   Margin="20 0 0 0"></TextBlock>

        </Border>

 

</Grid>

后台代码

    public partial class MainPage : UserControl

    {

        public MainPage()

        {

            InitializeComponent();

            Loaded += new RoutedEventHandler(MainPage_Loaded);

        }

 

        void MainPage_Loaded(object sender,RoutedEventArgs e)

        {

            List<Book> books = new List<Book>() {

                new Book("Professional ASP.NET 3.5"),

                new Book("ASP.NET AJAX In Action"),

                new Book("Silverlight In Action"),

                new Book("ASP.NET 3.5 Unleashed"),

                new Book("Introducing Microsoft ASP.NET AJAX")

                };

 

            Books.ItemsSource = books;

 

        }

 

        void Books_SelectionChanged(object sender,SelectionChangedEventArgs e)

        {

 

            Uri endpoint = new Uri(String.Format("http://localhost:4699/BookHandler.ashx?No={0}",Books.Selectedindex));

 

            WebClient client = new WebClient();

            client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);

            client.DownloadStringAsync(endpoint);

        }

 

        void client_DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e)

        {

            if (e.Error == null)

            {

                lblPrice.Text = "价格:" + e.Result;

            }

            else

            {

                lblPrice.Text = e.Error.Message;

            }

        }

    }

 

    public class Book

    {

        public Book(string name)

        {

            this.Name = name;

        }

        public string Name

        {

            get;

            set;

        }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐