ASP.NET 前端数据绑定---<%#%>及Eval()的使用

ASP.NET 前端html代码中会经常出现的<%%>的代码,里面的文本其实就是不能直接输出到客户端浏览器的文本,是需要服务器解释的。

在ASP中,<%%>里面的文本是vbscript或者javascript代码,在ASP.NET中,<%%>里面的文本就是.net平台下支持的语言。

具体有三种:<%%>,<%#%>,<%=%>,后两种主要是用于asp.net前端数据绑定的。

一 、<%=%>

在.aspx页面,<%= %>标签可以调用后台.CS的变量/属性或者方法,不过被调用的变量或方法必须是public的。
例:Default.cs文件里面有:

public string str = "test";

public string ReturnStr()  
{
  return "test";
}

 那么前端Default.aspx文件里面就可以这样写:

<asp:Label ID="Label2" runat="server" Text='<%=str%>'></asp:Label>
<asp:Label ID="Label1" runat="server" Text='<%= ReturnStr() %>'></asp:Label>

 

二、<%#%>
前端aspx页面中,一帮服务器控件数据绑定的语法,结合Eval()方法绑定数据源(ASP.NET 提供了一个名为 DataBinder.Eval 的静态方法,该方法计算后期绑定的数据绑定表达式,并将结果格式化为字符串(可选)。利用此方法,可以避免许多在将值强制为所需数据类型时必须执行的显式强制转换操作,DataBinder.Eval需要使用参数来指定容器)

例:Repeater控件,在Page_Load()方法中,加载数据:

后台:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            intopage(DropDownListMgrDate.SelectedValue.ToString());
            //不会每次刷新页面都重新绑定数据
        }
        
    }
    private void intopage(string Batchid)
    {
            this.Repeater1.DataSource = dmgr.GetCBProduct_MgrList(this.AspPage.CurrentPageIndex, AspPage.PageSize,Batchid);//CurrentPageIndex:当前页索引值;PageSize:分页每页所能容纳值
            this.Repeater1.DataBind();
    }

这里,Repeater1.DataSource的数据源既可以是DataSet,也可以是List,这里是List,对应前端DataBinder.Eval方法的参数是:ColumnName/属性名称

前端:

                        <td>
                            <%#DataBinder.Eval(Container.DataItem, "include_in_quantity")%>
                        </td>
                        <td title="<%#DataBinder.Eval(Container.DataItem, "part_description")%>">
                            <%#DataBinder.Eval(Container.DataItem, "part_description").ToString().Length>20?DataBinder.Eval(Container.DataItem, "part_description").ToString().Substring(0,20)+"...":DataBinder.Eval(Container.DataItem, "part_description").ToString()%>
                        </td>

这里Eval()绑定数据时结合使用了三元运算符,如果字符长度大于20,就截取+“...”,当鼠标滑到目标处,就会显示。

其他优秀博客链接推荐:

http://blog.csdn.net/lai123wei/article/details/7261701

http://www.cnblogs.com/luckeryin/archive/2012/12/13/2815823.html

 

转载于:https://www.cnblogs.com/ammy714926/p/5360330.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值