数据绑定控件与业务实体的绑定总结

1、数据绑定Eval方法VS数据绑定Bind方法

<%# Eval(“ProductID”) %>
<%# Bind(“ProductID”)%>
Eval:单向绑定,数据只读
Bind:双向绑定,可读可执行Insert/Update/…..操作
详细介绍:在ASP.NET的数据绑定的控件中,如GridView, DetailsView, 以及FormView这些控件能够自动对数据源进行Update, Delete 和 Insert操作。Bind方法通常用在数据控件中的EditItemTemplate或InsertItemTemplate模板中。
Demo:

<EditItemTemplate>
 <table>
    <tr>
      <td align=right>
        <b>Employee ID:</b>
      </td>
      <td>
        <%# Eval("EmployeeID") %>
      </td>
    </tr>
    <tr>
      <td align=right>
        <b>First Name:</b>
      </td>
      <td>
        <asp:TextBox ID="EditFirstNameTextBox" RunAt="Server"
          Text=''<%# Bind("FirstName") %>'' />
      </td>
    </tr>
    <tr>
      <td align=right>
        <b>Last Name:</b>
      </td>
      <td>
        <asp:TextBox ID="EditLastNameTextBox" RunAt="Server"
            Text=''<%# Bind("LastName") %>'' />
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <asp:LinkButton ID="UpdateButton" RunAt="server"
          Text="Update" CommandName="Update" />
        &nbsp;
        <asp:LinkButton ID="CancelUpdateButton" RunAt="server"
          Text="Cancel" CommandName="Cancel" />
      </td>
    </tr>
 </table>
</EditItemTemplate>

当点击某行的Update按钮时,被Bind方法绑定的TextBox值就会被传入到数据源控件中进行更新操作。


2、与简单的业务实体属性绑定


简单业务实体:
Class CArtwork
{
        //公共属性
        Public int ID {…}
        Public string Title {….}
        Public string Owner {….}
        Public DateTime DateCompleted {…}
        Public bool IsRecommend {…}
        …..
}
使用Eval和Bind 方法可以直接与实体的公共属性进行绑定,若私有或受保护的则不能进行绑定。
Demo:
<asp:Label ID=”labTitle” runat=”server” Text=’<%# Eval(“Title”)%>’ ></asp:Label>
<asp:Label ID=”labOwner” runat=”server” Text=’<%# Bind(“Owner”) %>’ ></asp:Label>
3、作为变量进行数据绑定
这种情况主要用在QueryString中,或则应用在需要对字段进行格式化显示。
a)         控件属性中之绑定一个数据字段
Demo:
<asp:HyperLink ID=”hpl” runat=”server” Text=’<%# Eval(“Title”)%>’ NavigateUrl=’<%# Bind(“ID”,”Artwork.aspx?id={0}”)%>’ ></asp:HyperLink>
b)        日期绑定时的格式化
Demo:
<asp:Label ID=”labDate” runat=”server” Text=’<%# Bind(“DateCompleted”,”{0:yyyy-MM-dd}”)%>’ ></asp:Label>
c)         两个业务实体的属性同时绑定到一个字符串
Demo:
<asp:HyperLink ID=”hpl” runat=”server” Text=’<%# Bind(“Title”)%>’ NavigateUrl=’<%# string.Format(“~/Spaces/{0}/artwork/{1}.aspx”, Eval(“Owner”), Eval(“ID”))%>’ ></asp:HyperLink>

注意,这里数据绑定方法只能是Eval,不能使用Bind方法。

 

4、绑定新闻标题,只显示标题的前几个字符
这种情况在新闻中应用的最常见,主要是为了在显示时,页面样式要保持一致,防止标题过长而在显示数据的时候,破环页面整体的布局。
Demo:
<asp:HyperLink ID=”hplTitle” runat=”server” ToolTip=’<%# Bind(“Title”)%>’ NavigateUrl=’<%# DataBinder.Eval(Container.DataItem,”Title”).ToString().Length > 10 ? DataBinder.Eval(Container.DataItem,”Title”).ToString().Substring(0,10) : DataBinder.Eval(Container.DataItem,”Title”).ToString()%>’ ></asp:HyperLink>
5、与复杂的业务实体进行绑定
复杂业务实体
Class CArtist
{
        //公共属性
        Public string ID {…}
        Public string Name {…}
        //包含成员类属性
        Public CArtwork Artwork {…}
        …….
}
若要绑定CArtist对象中CArtwork属性中的Title进行绑定,则可以使用下面的绑定方式:
<asp:Label ID=”labTitle” runat=”server” Text=’<%# DataBinder.Eval(Container.DataItem,”Artwork.Title”)%>’></asp:Label>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值