リピーターを使ってテーブルを作ろうとしています。ただし、いくつかの特定のコントロールに実装する必要があるロジックがいくつかあります、と div は言います。
私はこれを試しましたが、うまくいきませんでした。
例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
ソース エラー:
Line 35: HtmlGenericControl myDiv = (HtmlGenericControl)e.Item.FindControl("RepeaterBG");
Line 36:
Line 37: myDiv.Style.Add("background-color","green");
Line 38: }
Line 39: }
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
私のHtmlは:
<asp:Repeater runat="server" ID="MyStudents"
OnItemDataBound="rptArticleContent_ItemDataBound">
<HeaderTemplate>
<table><tr>
</HeaderTemplate>
<ItemTemplate>
<td>
<div runat="server" ID="RepeaterBG" > helli there</div>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("RegistrationDate") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Email") %>'></asp:Label>
</td>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>
私の.CS
protected void rptArticleContent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lb = new Label();
lb.Text = "</tr><tr>";
e.Item.Controls.Add(lb);
HtmlGenericControl myDiv = (HtmlGenericControl)e.Item.FindControl("RepeaterBG"); // i get null here, it seems to not find it at all!
myDiv.Style.Add("background-color","green"); // problem here
}
どこで私は間違えましたか?!