日期:2014-05-18  浏览次数:20610 次

Text='<%#Eval("T_ID") %>
<asp:Label ID="lblTID" runat="server" Text='<%#Eval("T_ID") %>' Visible="false"></asp:Label>象这样的一个label绑定Text='<%#Eval("T_ID") %>' 绑定原理是什么. 需要写什么样的后台才能实现Text='<%#Eval("T_ID") %>'的绑定?


------解决方案--------------------
T_ID可以是数据源中的一个字段(相关表)
------解决方案--------------------
后台的数据源(DataTable,DataReader等)中有T_ID字段
------解决方案--------------------
如果是repeater就在ItemDataBound处理程序里面写
ItemDataBound(object sender, RepeaterItemEventArgs e)

if (e.Item.ItemType == ListItemType.Item ¦ ¦ e.Item.ItemType == ListItemType.AlternatingItem) 

e.Item.DataItem as ...//看看这里DataItem的类型然后进行转换 定义一个相应的类型对象进行接收 就可以对这个对象取值了 
Label l = e.Item.FindControl("lblTID") as Label;...//在这里找到要显示数据的控件 给他的属性赋值 显示你之前取到的数据值 
//...
}
}

如果是gridview就在RowDataBound处理程序里面写 处理方式类似
RowDataBound(object sender, GridViewRowEventArgs e) 

if (e.Row.RowType == DataControlRowType.DataRow) 

e.Row.DataItem as ...
Label l = e.Row.FindControl("lblTID") as Label;
//...



------解决方案--------------------
datalist与repeater类似
------解决方案--------------------
看看下面3篇文章,你对数据绑定一定有比较深刻的理解
http://www.cnblogs.com/hjf1223/archive/2008/05/03/digging_into_binding_expression_1.html
http://www.cnblogs.com/hjf1223/archive/2008/05/04/digging_into_binding_expression_2.html
http://www.cnblogs.com/hjf1223/archive/2008/05/05/digging_into_binding_expression_3.html