zoukankan      html  css  js  c++  java
  • Eval与DataBinder.Eval的区别

    DataBinder.Eval的基本格式
    DataBinder.Eval(Container.DataItem,"XXX","{0}")
    <%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%>
    还有一种据说微软说效率很高的方式
    <%# ((DataRowView)Container.DataItem)["xxxx"]%> 但是这种方式必须要在前台页面导入名称空间System.Data,否则会生成错误信息<%@ Import namespace="System.Data" %>

    DataBinder.Eval的基本格式
    DataBinder.Eval(Container.DataItem,"XXX","{0}")
    <%# DataBinder.Eval(Container.DataItem,"xxxx")%>
    <%# DataBinder.Eval(Container,"DataItem.xxxx")%>

    问题1、他们是有什么不同?
    问题2、他们是否可以相互替换?
    问题3、DataBinder.Eval(Container.DataItem,"") 这个Container和DataItem分别都是什么?


    答1:Eval是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数据流动,即读/写。
    答2:Eval可以替换为Bind,但会降低性能;反之不能替换。
    答3:Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。

    如果只是显示值<%#Eval("字段名")%>就可以了.
    如果是要修改值<%#Bind("字段名")%>就可以了.

    以下两种的显示是相同的
    <%# Eval("name") %>
    <%# DataBinder.Eval(Container.DataItem,"sex") %>

  • 相关阅读:
    Revit 二次开发 几何
    Revit 二次开发 元素过滤练习
    Revit 二次开发 图元过滤
    Revit 二次开发 图元与参数
    扩展Revit的方式
    Revit API二次开发入门,完整学习流程,附源码
    Revit 二次开发学习视频
    在lldb调试中调用c++函数
    在lldb调试中调用c++函数
    lldb调试使用python脚本问题总结
  • 原文地址:https://www.cnblogs.com/dekevin/p/2484628.html
Copyright © 2011-2022 走看看