【发布时间】:2015-02-26 02:30:23
【问题描述】:
我无法使用数据表正确绑定我的子中继器 (lvTwo)。它总是抛出 NullReferenceException。在调试模式下,我的数据表看起来不错,有什么想法吗?
HTML 代码:
<asp:Repeater ID="lvOne" runat="server" OnItemDataBound="lvOne_ItemDataBound">
<ItemTemplate>
<div>
I am the one.
</div>
<asp:Repeater ID="lvTwo" runat="server">
<ItemTemplate>
I am the two.
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
代码隐藏(dtTable 为 lvOne 绑定,dtTable2 为 lvTwo 绑定):
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtTable = new DataTable();
dtTable.TableName = "T1";
dtTable.Columns.Add("ProjectName");
DataRow dr = dtTable.NewRow();
dr["ProjectName"] = "ThreeSixFive";
dtTable.Rows.Add(dr);
if (!Page.IsPostBack)
{
lvOne.DataSource = dtTable;
lvOne.DataBind();
}
}
protected void lvOne_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataTable dtTable2 = new DataTable();
dtTable2.TableName = "T2";
dtTable2.Columns.Add("C");
DataRow dr = dtTable2.NewRow();
dr["C"] = "ThreeSixFive";
dtTable2.Rows.Add(dr);
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (dtTable2 != null)
{
lvTwo.DataSource = dtTable2;
lvTwo.DataBind();
}
}
}`
【问题讨论】:
-
检查是否初始化了 lvOne 或 lvTwo .. 还有哪里抛出的异常?
标签: c# datatable repeater asprepeater