技术开发 频道

用VB语言,在Web开发中使用LINQ

  7. 你可以选择性地从LinqDataSource 的智能标签里启用Delete, Insert, 和Update. 提示: 如果你要建一个可读/写的web窗体, 这会非常有用.

  下面是在”Source”视图中可以看到的LinqDataSource 的标记. 注意ContextTypeName="NorthwindDataClassesDataContext" -- 这个值是我们在设计器中创建的类型名称 (代码生成器在末尾添加了一个"DataContext" -- 这名字真长!). TableName 设置为我们想要显示的表或属性 -- 本例中设为Employees. 你可以用这种方法绑定任何现有的DataContext 类型和类属性.
<asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="NorthwindDataClassesDataContext" TableName="Employees"> </asp:LinqDataSource>
  绑定界面控件到 LinqDataSource

  现在让我们把 DataList连接到 LinqDataSource. 有一个好消息是DataList只关心LINQ查询通过LinqDataSource返回的字段名称 -- 当你不断改进动态 LINQ查询的字段和行结果时会给你方便.

  1. 在设计器中选中DataList. 展开智能标签并选择Data Source = LinqDataSource1
  2. 自定义一下DataList的ItemTemplate
  3. 运行! (按F5 或在快捷菜单中点击 View in Browser)

  默认情况下向导会创建一系列绑定的文本标签. 你可以利用设计器在编辑模式下选取你想要的.提示: 这是我通常在”Source”视图中拖放html标记的地方. 在本例中, 我只简单地显示full name, notes, 还有一块显示员工相片的地方. 并把数据转化到一个有两列的表格中.

   如果你检查一下DataList的标记, 你会发现ItemTemplate包含一些绑定的文本标签. 从查询中绑定数据是一个非常简单的过程,你只需要在服务器控件字段中, 用经典的ASP样式和VB eval数据绑定语句, 输入<%# Eval("YOURFIELDNAME") %>. 这为显示你想要的数据及格式化它们提供了很大的灵活性. 下面是我自定义的:
<div> <asp:DataList ID="DataList1" runat="server" DataKeyField="EmployeeID" DataSourceID="LinqDataSource1"> <HeaderTemplate> <table> </HeaderTemplate> <ItemTemplate> <tr> <td> <img src="PLACEHOLDER.jpg" class="" style="border: 4px solid white" alt='Photo Number XXX' /> <br /><br /> </td> <td>
  EmployeeID:
<asp:Label ID="EmployeeIDLabel" runat="server" Text='<%# Eval("EmployeeID") %>' /> <br /> <asp:Label ID="LastNameLabel" runat="server" Text='<%# Eval("FirstName") & " " & Eval("LastName") %>' /> <br /> <asp:Label ID="NotesLabel" runat="server" Text='<%# Eval("Notes") %>' /> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> </div>
0
相关文章