如何绑定asp.net中的DataList模板字段

时间:2012-12-08 00:21:44

标签: asp.net templates bind datalist

我想将标签-i created-in Datalist模板绑定到col -named“item”-in my dataSource

我在几次试验后使用了以下代码

        DataList2.DataSource = dt;  // my DataSource
        Label l1 = (Label)DataList2.FindControl("itemLabel");
        l1.Text = dt.Rows[0]["item"].ToString();
        DataList2.DataBind();

我在第3行遇到以下错误我正在寻找正确的表达

Object reference not set to an instance of an object.

任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:1)

标签为空,因为NamingConainer(用于FindControl)不是DataList,而是DataListItems之一(DataList用于DataBind多个项目。)

所以你首先需要DataItem,然后才能处理它的ItemDataBound事件。在那里,您可以找到标签和基础void Item_Bound(Object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { // Retrieve the Label control in the current DataListItem. Label itemLabel= (Label)e.Item.FindControl("itemLabel"); DataRow row = ((DataRowView)e.Item.DataItem).Row; String item = row.Field<string>("item"); itemLabel.Text = item; } }

{{1}}