からのアクセスのDataItemは、私がデータバインド、テンプレートコントロールを持っており、テンプレート領域内私はそうのように、イベントハンドラでコントロールを作成します。ASP.NET:イベントハンドラ
<tnl:DisplayTree ID="DisplayTree1" runat="server" KeyPropertyName="Id"
ParentPropertyName="ParentDemographic" DataSourceID="DemographicObjectSource">
<ItemTemplate>
<asp:CheckBox ID="DemogSelector" runat="server" OnCheckedChanged="DemogSelector_OnCheckedChanged" />
<asp:Label ID="InlineEditLabel" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Name") %>'></asp:Label>
</ItemTemplate>
</tnl:DisplayTree>
イベント内でハンドラ、私は、コントロールが作成された項目のキーを検出できるようにしたいと思います。たとえば、次のように
protected void DemogSelector_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox selector = (CheckBox)sender;
DisplayTree.TreeNode treeNode = (DisplayTree.TreeNode)selector.Parent.Parent.Parent.Parent;
Label1.Text += (int)treeNode.Key + ", ";
}
あなたが見ることができるように、このアプローチは私のDisplayTree.TreeNodeクラス内の階層の密接な知識を必要とする(つまり、私はどこ私はよsender.Parent.Parent.Parent.Parentであることを知っている必要がありますDisplayTree.TreeNodeオブジェクトを見つけてください)。 TreeNode階層が変更されたり、何かが変わったりすると、問題なくキーにアクセスできるように、少し頑強にしたいと思います。このキーをイベントハンドラ内から利用できるようにするには、どうすればよいでしょうか?
これは私が探していたものによく似ています。私はそれが動作することを確認し、正しい応答としてマークします。ジョンの答えは同じように見えますが、最初に投稿したようです。 :-) – StriplingWarrior