2011-07-11 7 views
0

私のコードで見ることができます...私はItemTemplate内のラベルを持っています。私は、ステータスを更新することができるようにラベル...どうすればgridview/repeater内のラベルにアクセスできますか

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1" OnItemCreated="Repeater1_ItemCreated" OnItemDataBound="Repeater1_ItemDataBound"> 
<ItemTemplate> 
    Book: 
    <asp:Label ID="lblStatus" runat="server"></asp:Label> 
    <Mycontrol:Content1 ID="EmpControl" runat="server" OnMyControlClick="EmpControl_clicking" /> 
    <br /> 
</ItemTemplate> 
</asp:Repeater> 


    protected void EmpControl_clicking(object sender, EmployeeEventArgs e) 
    { 
     // how do i get access to the lblStatus??? 
    } 
あなたは、テンプレート内のコントロールにアクセスするためにFindControlメソッドを使用する必要があります

答えて

2

protected void EmpControl_clicking(object sender, EmployeeEventArgs e) 
    { 
     MyControl myControl = (MyControl)sender; 
     Label c = (Label)myControl.Parent.FindControl("lblStatus"); 
    } 
+0

私lblStatusが内側ではありませんMyControlとそのItemTemplateに –

+0

ザ・内部myControlのParentプロパティはItem Templateです。 –

+0

私はここに小さな問題があると思う...私は私のリピータに10行を持っていると私は行1をクリックしたときに私はラベルにアクセスして素晴らしいメッセージを表示することができる...と言う行2をクリックするとラベルにアクセスしてメッセージを表示しますが、行1のメッセージはまだ表示されていますが、どうすれば行1のlblStatusをクリアできますか?言い換えれば、いつでもメッセージを表示する –

関連する問題