关于代码内嵌绑定技术
发表在ASP.NET图书答疑 2010-07-19
是否精华
版块置顶:
大伟
   你好!

在看了贵社的《ASP.NET从入门到精通》以后,我对于代码绑定技术“<%......%>”还不是太了解,希望你能详细讲解一下,另外怎么绑定数据库中的数据呢?
分享到:
精彩评论 3
红尘倒影
学分:0 LV1
2010-07-19
沙发
你好
<%%>用于在前台绑定数据,例如,DataList控件在后台进行数据绑定之后,在前台的HTML代码中就可以使用<%%>将某个字段的值显示出来,例如,<%#Eval("字段名")%>。
明日支持者
学分:0 LV1
TA的每日心情
开心
2023-03-06 20:31:58
2010-07-20
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
你好
<%%>用于在前台绑定数据,例如,DataList控件在后台进行数据绑定之后,在前台的HTML代码中就可以使用<%%>将某个字段的值显示出来,例如,<%#Eval("字段名")%>。
[/FIELDSET]

回复:你说的太简单了!还有很多内容呢!,还是请大伟来给我讲讲吧,他讲的一般很全面,谢谢了!
  
大伟_mrkj
学分:0 LV1
2010-07-20
地板
首先,谢谢你对我们明日科技的支持!
1.简单数据绑定
ASP.NET 1.x 时代,其数据绑定方法,形如:<%# DataBinder.Eval(Container.DataItem, "Price") %>
ASP.NET 2.0 时代其绑定方法,形如<%# Eval("Price") %>、<%# XPath("Price") %>
在ASP.NET 我们在使用Repeater ,DetailsView ,FormView ,GridView 等数据绑定模板时,都会使用
<%# Eval(" 字段名") %> 或<%# Bind(" 字段名") %> 这样的语法来单向或双向绑定数据。
2.asp.net 单值绑定 〈%#...%〉
(1)<%= XXX %> 内联引用方式本 可以引用C#代码 
(2)<%# XXX %> 可以引用.CS代码中的字段 前提在初始化相应字段后,在Page_Load页面上使用
Page.DataBind() 
在这个方法中,强调一点就是Page.DataBind()。为了计算这样的<%# XXX %>的数据绑定表达式,必须在代码中调用Page.DataBind()方法。调用DataBind()时,ASP。NET检查页面上的所有表达式并用适当的值替换它们,如果忘记了调用DataBind() 方法,数据绑定表达式不会被填入值----相反,它们在页面
上呈现为HTML时被丢弃,总之记住一点,在使用代码绑定技术“<%......%>”时一定要记住调用
Page.DataBind()方法。
(3)<%#$ XXX %> 可以引用webConfig.xml中预定义的字段或者已注册的类的表达式 
(4)<%#Eval(XXX) %> 类似于JAVASCRIPT方式 数据源也需要绑定
先给出aspx代码:
<%...@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="webTest._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%...# aaa + "1" %>
<br />
<%= DateTime.Now %>
</div>
<asp:TextBox ID="box_a" runat="server" Text="<%$ Code: DateTime.Now %>" />
<br /> 
<div>
</div>
<asp:TextBox ID="bindTest" runat="server" Text="<%$ AppSettings:test %>"/>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<HeaderTemplate >
自定义的姓名列 
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txbName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
<br /> 
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate >
<asp:Label ID="lblSex" runat="server" Text=" 自定义的性别列" ></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<%...#Eval("Sex") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> 
</form>
</body>
</html>

以下是.cs代码
namespace webTest
...{
public partial class _Default : System.Web.UI.Page
...{
//用于显示的字段
public string aaa = "后台的变量";
protected void Page_Load(object sender, EventArgs e)
...{
ini_table();
Page.DataBind();
}
void ini_table()
...{
DataTable dt = new DataTable();
//用于显示的Name列
dt.Columns.Add("Name");
dt.Columns.Add("sex");
DataRow dr = dt.NewRow();
dr[0] = "aaa";
dr[1] = "男";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "bbb";
dr[1] = "男";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "ccc";
dr[1] = "女";
dt.Rows.Add(dr);
//数据源绑定
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();

}
[font color=#FF0000]注:我们公司最近新出的图书《ASP.NET编程宝典》,书中有讲到各方面的知识,包括最新的一些技术,如AJAX\LINQ等等,希望对您有所帮助。谢谢关注![/font]
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照