10bet网址
连接器和api手册
本手册下载

连接器和api手册// 教程:ASP.NET中的数据绑定在实体上使用LINQ

4.6.4教程:在ASP.NET中使用LINQ上的数据绑定

在本教程中,您将创建一个ASP。使用实体框架映射MySQL Connector/NET,将LINQ查询绑定到实体。

如果您还没有这样做,请安装世界在尝试本教程之前数据库示例。查看教程第4.6.3节,“教程:使用实体框架实体作为Windows窗体数据源”有关下载和安装此数据库的说明。

创建ASP.NET网站

在本教程的这一部分中,您将创建一个ASP。网的网站。该网站使用世界数据库。主页上有一个下拉列表,您可以从中选择一个国家。然后,有关该国城市的数据显示在GridView控件中。

  1. 从Visual Studio主菜单选择文件,新的, 然后网站

  2. 从Visual Studio安装的模板选择ASP.NET网站。点击好的。默认情况下,你会看到你的网页的Source视图。

  3. 单击Source视图面板下面的Design视图选项卡。

  4. 在设计视图面板中,输入一些文本来装饰空白网页。

  5. 点击工具箱。从控件列表中选择下拉列表。将控件拖放到网页上文本下方的位置。

  6. 下拉列表控制上下文菜单,确保使将AutoPostBack复选框已启用。这将确保选择项目时调用控件的事件处理程序。用户的选择反过来将用于填充网格视图控制。

  7. 从工具箱中选择网格视图控制。拖拉网格视图控制到您已放置的下拉列表下方的位置。

    下图显示了“设计视图”选项卡中的装饰文本和两个控件的示例。添加的GridView控件产生了一个具有三列的网格(Column0,Column1, 和Column3)和绳子美国广播公司在网格的每个单元格中。

    图4.18放置GridView控件

    内容在周围的文本中进行描述。

  8. 此时建议您保存解决方案,并构建解决方案以确保没有错误。

  9. 如果您运行该解决方案,您将看到显示文本和下拉列表,但列表为空。此外,网格视图根本不会出现。添加此功能将在以下部分中描述。

在这个阶段,你已经有了一个将要构建的网站,但是需要进一步的功能。下一个步骤是使用实体框架从世界数据库到您可以以编程方式控制的实体。

创建一个ADO。NET实体数据模型

在本教程的此阶段,您将使用该教程将ADO.NET实体数据模型添加到您的项目中,使用世界数据库在存储级别。执行此操作的过程在本教程中介绍第4.6.3节,“教程:使用实体框架实体作为Windows窗体数据源”,这将不会在这里重复。

使用实体LINQ查询的结果填充列表框

在本教程的这一部分,您将编写代码来填充下拉列表控制。当网页加载数据来填充列表时,将使用之前创建的模型上的LINQ查询的结果来实现。

  1. 在“设计视图”面板中,双击任何空白区域。这会带来Page_Load方法。

  2. 根据下面的清单示例修改代码的相关部分。

    ...公共部分类_default:system.web.ui.page {worldmodel.worldenties我们;受保护的void page_load(对象发件人,eventargs e){we = new worldmodel.worldentities();if(!ispostback){var countruery =从c中的c we.country orderby c.name选择new {c.code,c.name};dropdownlist1.datavaluefield =“代码”;dropdownlist1.datatextfield =“name”;dropdownlist1.datasource = countryquery.tolist();DataBind ();}} ...

    列表控件只需要在页面首次加载时填充。条件代码确保如果页面随后被重新加载,则不会重新填充列表控件,这将导致用户选择丢失。

  3. 保存解决方案,构建并运行它。您应该看到列表控件已经被填充。您可以选择一个项目,但是GridView控件还没有出现。

此时,您有了一个工作的下拉列表控件,它由实体数据模型上的LINQ查询填充。

使用实体LINQ查询填充网格视图控制

在本教程的最后一部分中,您将使用实体数据模型上的LINQ查询来填充网格视图控件。

  1. 在设计视图中,双击下拉列表控制。此操作导致其selectedIndexChanged.要显示的代码。当用户选择列表控件中的项并因此生成AutoPostBack事件时,将调用此方法。

  2. 根据下面的清单示例修改代码的相关部分。

    …protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) {var cityQuery = from c in we。城市c.CountryCode == DropDownList1。c.Name select new {c.Name, c.Population, c.CountryCode};GridView1。数据源= cityQuery;DataBind ();}……

    网格视图控件由对实体数据模型的LINQ查询的结果填充。

  3. 保存、构建和运行解决方案。当您选择一个国家时,您将看到它的城市显示在GridView控件中。下图显示了从列表框和一个有三列的表中选择的Belgium:的名字,人口, 和国家代码

    图4.19工作网站

    内容在周围的文本中进行描述。

在本教程中,您已经看到了如何创建ASP.NET网站,您还可以看到如何使用实体数据模型上的LINQ查询访问MySQL数据库。