datalist 数据绑定问题.txt
来自「.net常用经典源代码。十分好用!不用客气」· 文本 代码 · 共 64 行
TXT
64 行
主 题: 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 + =
减小字号Ctrl + -
显示快捷键?