📄 datalist 数据绑定问题.txt
字号:
主 题: DataList数据绑定的问题
能不能不在模板里面用<%#DataBinder.Eval(Container.DataItem, “fieldname")%>提取绑定的数据,而是放label在上面,然后在后台写代码提取?
如果行,那在哪个事件内进行操作?
------------------------------------------------------------------------------
1)
当然可以。
如果你的label在datalist内,那可以在itemDataBound事件里做:
ctype(e.item.findControl("labelName"),label).text="....."
如果在datalist外,就在page_load里做:
labelName.text="...."
------------------------------------------------------------------------------
2)
好象ItemTemplate不行吧
------------------------------------------------------------------------------
3)
一定可以
------------------------------------------------------------------------------
4)
有具体例子吗
------------------------------------------------------------------------------
5)
<asp:Label runat="server" id="Label1" Text='<%#DataBinder.Eval(Container.DataItem, “fieldname")%>' />
读取:
((Label)DataList1.Items[0].FindControl("Label1")).Text
------------------------------------------------------------------------------
6)
能不能不用<%#DataBinder.Eval(Container.DataItem, “fieldname")%>
直接在((Label)DataList1.Items[0].FindControl("Label1")).Text赋值?
------------------------------------------------------------------------------
7)
建议不要在html代码中邦定数据,应在代码层邦定
private void Page_Load如下
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//邦定数据原
this.DataList1.DataSource = CreateSource();
this.DataList1.DataBind();
}
}
private void DataList1_ItemDataBound中写如下代码
private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataRowView MyDataRowView=(DataRowView)e.Item.DataItem;
((Label)e.Item.FindControl("Name")).Text=MyDataRowView.Row["姓名"].ToString();
}
//Name为DataList的模板中的标签控件名
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -