2010-11-26 27 views
0

Mon répéteur:Comment le contrôle d'accès ItemTemplate de l'événement ItemCommand à l'aide Répéteur

<asp:Repeater ID="rptrContacts" runat="server" OnItemCommand="rptrContact_ItemCommand" > 

<div ID="itemTemplate> 
<ItemTemplate> 
<%# Eval("Name") %> 
<%# Eval("Email") %> 
<asp:LinkButton ID="lbtnEditContact" runat="server" CommandName="Edit" Text="Edit" CommandArgument='<%# Eval("ContactID") %>' /> 
<asp:Label ID="lblUpdateConfirm" runat="server" Text="Update Confirmed" Visible="false" /> 
</ItemTemplate> 
</div> 

<div ID="editTemplate runat="server" visibility="false"> 
Update your Info:<br> 
Name: <asp:TextBox ID="txtName" runat="server Text="<%# Eval("Name") %>"/> <br> 
Email: <asp:TextBox ID="txtEmail" runat="server Text="<%# Eval("Email") %>"/><br> 
<asp:LinkButton ID="lbtnUpdateContact" CommandArgument='<%# Eval("ContactID") %>' CommandName="UpdateContact" runat="server" >Update</asp:LinkButton> 
</div> 

</asp:Repeater 

et code pour ItemCommand:

switch(e.CommandName) 
{ 
case "Edit": 
//make editTemplate div visible 
HtmlGenericControl divEditContact = (HtmlGenericControl)e.Item.FindControl ("divEditContact"); 
divEditContact.Visible = true; 
break; 

case "Update": 
Employee updateEmployee = new Employee 
     { 
      employeeName = txtName.Text: 
      employeeEmail = txtEmail.Text: 
     } 

updateEmployee = API.UpdateEmployee(updateEmployee); 

      //display lblUpdateConfirm visible to True 
     // so user sees this confirm messge in the newly updated ItemTemplate 

} 

Comment puis-je accéder à mon lblUpdateConfirm et tourner son état de texte à visible de l'intérieur l'ItemCommand, de sorte que lorsque l'utilisateur voit le ITemTemplate nouvellement mis à jour, l'étiquette affiche le message "Update Confirmed"?

Répondre

2

VB:

CType(e.Item.FindControl("lblUpdateConfirm"), Label).Visible = True; 

C#:

Label lblToMakeVisible = (Label)e.Item.FindControl("lblUpdateConfirm"); 
lblToMakeVisible.Visible = True; 
+0

Hmmm. Ne fonctionne pas VS2010 dit "Impossible de résoudre le symbole 'CType' .J'ai mis votre ligne de code juste après la mise à jour dans l'événement ItemCommand.Toutes les autres idées sont appréciées – Doug

+0

Désolé, vérifiez l'édition.J'utilise la syntaxe VB – N0Alias

+0

Merci pour le Version C#, ne fonctionne toujours pas: "Impossible de convertir l'expression de type 'bool' en type 'Label'". – Doug