2016-06-26 12 views
0

ich deaktivieren mag/steckt es in Nur-Lese-Modus oder etwas, das es nicht funktionsfähig für immer machen. Was ich habe, ist dies:disable/graut Link-Taste aus einer bestimmten Zeile in gridview asp.net

<asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="btnApprove" runat="server" Text="Approve" CommandName="Approve" CommandArgument='<%# Eval("ProductID") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 

Und es sieht wie folgt aus: example image

Nun, was ich will, ist, wenn ich auf den Link Schaltfläche Genehmigen klicken, wird es dann abgeblendet werden oder ihre Funktionalität verlieren. aber nur für diese Reihe, DIE ICH HABE .Any GEKLICKT Trick, wie kann ich das tun? durch die Art und Weise hier ist mein Code hinter dafür:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     foreach (GridViewRow row in GridView1.Rows) 
     { 
      if (row.RowType == DataControlRowType.DataRow) 
      { 
       CheckBox chkRow = (row.Cells[0].FindControl("chkCtrl") as CheckBox); 

       if (chkRow.Checked) 
       { 
        using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True")) 
        { 
         scn.Open(); 
         SqlCommand cmd = new SqlCommand("update o set o.Updatedproduct = p.ProductQuantity - o.Totalproduct from CustomerProducts o inner join Products p on o.ProductID = p.ProductID WHERE [email protected]", scn); 
         cmd.Parameters.AddWithValue("@CustomerID", SqlDbType.Int).Value = row.Cells[0].Text; 
         cmd.ExecuteNonQuery(); 
         Label1.Visible = true; 
         Label2.Visible = false; 
         GridView1.DataBind(); 
        } 

       } 
      } 
     } 
    } 

UPDATE:

basierend auf dem Bild i vorgesehen ist, halte ich auch die gesamte Zeile mit möglichst abgeblendet werden. seine, als ob seine nutzlos, nachdem die Tinte Taste

+0

, was man von ihnen über die Verwendung von: 'e.Row.Attributes e.Row.CssClass' – Legends

+0

wo ich es Sir setzen? und was bekommt es von cssclass? – faufao

Antwort

0

klicken Sie haben Ihre Linkbutton zu finden und deaktivieren, wie folgt aus:

var lb = row.FindControl("btnApprove") as LinkButton; 
//var lb = row.Cells[0].Controls[0] as LinkButton; 
lb.Enabled = false; 
lb.Attributes.CssStyle[HtmlTextWriterStyle.Color] = "gray"; 
lb.Attributes.CssStyle[HtmlTextWriterStyle.Cursor] = "default"; 

Eigentlich haben Sie auch das Kontrollkästchen in der Zeile zu finden. Sie können auch einen Stil, um die Zeile hinzufügen, um es deaktiviert aussehen:

row.CssClass = "row-disabled"; 

<style> 
    tr.row-disabled{ 
     color:gray; 
    } 
</style>