Supposons que j'ai un GridView sur la page. GridView a une colonne d'édition activée et affiche certains enregistrements. Comment puis-je activer/désactiver l'édition en lignes en fonction d'autres champs de données?Modification facultative dans les lignes de GridView?
0
A
Répondre
2
Vous pouvez le faire de plusieurs façons. Deux d'entre eux sont:
Convertissez d'abord la colonne d'édition en champ de modèle.
Quel que soit le champ sur lequel vous souhaitez baser l'activation/désactivation, vous pouvez ajouter la propriété DataKeyNames de GridView.
ensuite sur l'événement OnRowDataBound vous pouvez effectuer les opérations suivantes:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Normal)
{
var LinkButton1 = (LinkButton)e.Row.FindControl("LinkButton1");
LinkButton1.Enabled = GridView1.DataKeys[e.Row.RowIndex].Value == "SomeValue"; //Or some other logic, like converting to a boolean
}
}
Ou,
Dans le balisage Html vous page ASPX, modifiez la propriété a permis de linkbutton pour lier le votre champ désiré. Tels que:
<asp:LinkButton ID="LinkButton1" runat="server" Text="Edit" Enabled='<%# Convert.ToBoolean(Eval("SomeField")%>'></asp:LinkButton>
Espérons que cela aide.
Je ne sais pas ce que vous voulez dire. Voulez-vous désactiver/activer la capacité d'édition sur une ligne en fonction des données (par exemple, désactiver le bouton 'Edit' LinkButton sur une ligne si un champ est égal à true)? Ou, mettre automatiquement une ligne en mode édition en fonction du même type de condition? – Jamie
@Jamie: Je veux dire "vouloir désactiver/activer la capacité d'édition sur une ligne basée sur des données (c'est-à-dire désactiver le" Link "Link sur une ligne si un champ est égal à true)" –