ASP。NET学习六

来源:互联网 发布:linux zip压缩命令行 编辑:程序博客网 时间:2024/05/29 04:58
数据库访问ADO。NET之:数据绑定(DataBind)技术
       DataBind是一种全新的技术,通过它可以将程序中的执行数据与页面中属性、集合、表达式及函数结果“绑定”(binding)在一起。换句话说,只要程序中的相应数据发生变化,那么这些与数据“绑定”在一起的属性、集合、表达式及函数结果的值就会随之改变。
用法:
绑定属性:<%Property%>
绑定集合:<asp:DataGrid id="dg" DataSource="<%#MyDataView%>" runat="server"/>
绑定表达式:<%#Container.DataItem%>
绑定函数结果:<%#GetForm(user)%>
 
<%%>与<%#%>的区别<%%>之间的代码将会直接执行,而<%#%>之间包含的代码,仅仅在DataBind()方法调用后,才会被执行。Page以及所有Server控件都拥有DataBind方法。对于集合控件来说,只要父控件被绑定,则子控件或项目也会被绑定。
  1. 示例:绑定公共属性
代码片段中:
    public string user = "厉害";
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();
       
    }
 源文件中:
<body>
    <form id="form1" runat="server">
    <div>
    User的值是:<%#user %>
    </div>
    </form>
</body>
 
2.示例:绑定控件属性
代码片段:
 protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();
    }
源文件中:
<form id="form1" runat="server">
    <div>
       输入: <asp:TextBox ID="td" runat="server"></asp:TextBox><br />
   
    你输入文本框的值为:<%#td.Text %>
    </div>
    </form>
这里用<%=user%>也是可以做到的,这里演示通过Binding取得公共变量和控件属性的值只是让你了解DataBind的基本用法。
 
3.示例:数组集合绑定到DropdownList控件
  protected void Page_Load(object sender, EventArgs e)
    {
        ArrayList ddlArray = new ArrayList();
        ddlArray.Add("劳动");
        ddlArray.Add("体育");
        ddlArray.Add("家庭");
        ddlArray.Add("活动");
        ddlArray.Add("五笔");
        ddl.DataSource = ddlArray;
        ddl.DataBind();
    }
源文件:
<form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddl" runat="server">
        </asp:DropDownList>
    </div>
    </form>
注意:不是每个集合都能够与控件的属性绑定,绑定的集合必须支持Iconnection接口,满足条件的集合有:DataReader(数据访问器),ArrayList(数据列表),DataView(数据视图),HashTable(哈希表).
4.示例:绑定函数结果
public string  User = "飞刀";
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.DataBind();
    }
    public int GetAge(String uid)
    {
        int age = 0;
        switch (uid)
        {
            case "中国":
                age = 21;
                break;
            case "飞刀":
                age = 23;
                break;
        }
        return age;
    }
源文件:
<form id="form1" runat="server">
    <div>
      User=<%#User %><br />
      <%#GetAge(User) %>
    </div>
    </form>