0

我想将 Datalist 模板中的标签 -i created- 绑定到我的 dataSource 中名为“item”的 col

经过几次试验,我使用了以下代码

        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.

任何帮助,将不胜感激..

4

1 回答 1

1

标签为空,因为它NamingConainer(用于FindControl)不是DataList其中之一DataListItems(aDataList用于多个项目)。

所以你需要DataBind先处理它,然后你才能处理它的ItemDataBound事件。在那里您可以找到标签和底层的DataItem.

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;
 }
}
于 2012-12-08T00:30:29.280 回答