2010-08-05 6 views
1

Éditer - Merci pour vos réponses jusqu'à présent et désolé de ne pas avoir précisé exactement quel était le problème. Le code de balisage réel estAutoGenerateEditButton est ignoré dans le code C# pour DetailsView

<asp:DetailsView ID="dvwSomeDetailsView" runat="server" 
    AutoGenerateRows="False" DataSourceID="SomeDataSourceID"> 
    <Fields> 
    <asp:TemplateField HeaderText="SomeText" SortExpression="SomeText"> 
     <EditItemTemplate> 
     <cc1:Editor ID="txtDescription" runat="server" 
      Content='<%# Bind("SomeText") %>' /> 
     </EditItemTemplate> 
     <ItemTemplate> 
     <asp:Label ID="lblDescription" runat="server" 
      Text='<%# Bind"SomeText") %>'></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:CommandField ButtonType="Image" CancelImageUrl="~/img/cancel.png" 
     EditImageUrl="~/img/edit.png" InsertImageUrl="~/img/insert.png" 
     UpdateImageUrl="~/img/save.png" ShowEditButton="True" /> 
</asp:DetailsView> 

Je ne suis pas sûr que définir la propriété ShowEditButton doit être retiré, mais quand j'essayé de faire que je ne pouvais toujours pas le mettre programme.

maintenant dans le code behind I réduit la méthode Page_Load à cette

protected void Page_Load(object sender, EventArgs e) 
{ 
    dvwSomeDetailsView.AutoGenerateEditButton = true; 
} 

Ce que je veux réaliser est que, en modifiant l'affectation dans la méthode Page_Load je peux masquer/afficher le bouton Modifier, mais ne marche pas. Lorsque je joue dans le fichier de balisage, je peux faire apparaître ou masquer le bouton, mais je ne peux jamais le changer à partir du code derrière le fichier.

J'ai également essayé d'appeler explicitement dvwSomeDetailsView.DataBind après avoir défini la propriété, mais cela ne fonctionnait pas non plus. Substituer OnPreRender et placer le code de la méthode Page_Load dans leur n'a pas fait quoi que ce soit pour améliorer cela non plus. Peut-être que je pense trop compliqué - ne devrait pas y avoir un moyen facile de définir par programme si le bouton devrait/ne devrait pas montrer?

Merci d'avance pour vos commentaires.

Gorgsenegger

+0

false est la valeur par défaut de la propriété. Ces lignes de code et de balisage ne devraient rien faire. Modifiez-vous la propriété ailleurs dans votre code? Que voulez-vous dire par "il ne semble pas faire quelque chose en termes de mise en place de la propriété susmentionnée"? – DaveB

Répondre

0

Si le code expurgée derrière le

[... Some Stuff...] 

contient un appel à detailsView.DataBind() (soit directement, soit par Page.DataBind()), alors c'est votre problème. La propriété AutoGenerateEditButton doit être définie avant d'appeler DataBind sur DetailsView.

Questions connexes