2014-04-20 5 views
0

Cela peut être un peu déroutant, mais je vais essayer de mon mieux pour expliquer et apprécierait tout help.I un gridview commeDésactiver un ButtonField pour un utilisateur particulier dans un gridview

<asp:GridView ID="GridView1" runat="server" Width="936px" AllowPaging="True" AutoGenerateColumns="False" CellPadding="3" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand" style="text-align: center" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellSpacing="2" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> 
    <Columns> 
     <asp:BoundField DataField="TaskId" HeaderText="TaskId" InsertVisible="False" ReadOnly="True" SortExpression="TaskId" /> 
     <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> 
     <asp:BoundField DataField="Body" HeaderText="Body" SortExpression="Body" Visible="false" /> 
     <asp:BoundField DataField="Reward" HeaderText="Reward(Rs)" SortExpression="Reward" /> 
     <asp:BoundField DataField="TimeAllotted" HeaderText="Time(Min)" SortExpression="TimeAllotted" /> 
     <asp:BoundField DataField="PosterName" HeaderText="Uploader" SortExpression="PosterName" /> 
     <asp:ButtonField ButtonType="Button" CommandName="Select" Text="Perform Task" ControlStyle-ForeColor="White" ControlStyle-Font-Bold="true"> 
      <ControlStyle BackColor="#CC6600" Font-Bold="True" ForeColor="White"></ControlStyle> 
     </asp:ButtonField> 
    </Columns> 

Lorsque je clique sur le Buttonfield d'une rangée particulière, je suis dirigé vers une nouvelle page qui me demande d'effectuer une tâche. Je veux désactiver le champ de bouton «Effectuer une tâche» pour cet utilisateur particulier lorsqu'une tâche est effectuée.

Comment puis-je faire cela?

+0

créer colonne qui maintiennent l'état de vos tâches dans la base de données TaskStatus sur ce que vous pouvez activer ou désactiver vos boutons –

+0

mais comment pourrais-je gérer pour les connexions d'utilisateurs individuels ?? – Mash

+0

Vous devez désactiver le bouton 'Perform Task' si' PosterName' fait référence à l'utilisateur actuel, n'est-ce pas? Ou pour activer/désactiver la colonne 'PerformTask', en fonction de l'identité de l'utilisateur actuel? – nativehr

Répondre

0

Essayez ce code:

<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" ...> 
    Other settings 
</asp:GridView> 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var button = (Button) e.Row.Cells[e.Row.Cells.Count - 1].Controls[0]; 
     button.Enabled = CanCurrentUserViewButton(); 
    } 
} 

private bool CanCurrentUserViewButton() 
{ 
    //Logic... 
} 
Questions connexes