c#
  • asp.net
  • gridview
  • asplinkbutton
  • 2016-06-26 20 views 0 likes 
    0

    私はそれを読み取り専用モードにするか、永遠に機能しないようにするものにしたい。gridview asp.netの特定の行のリンクボタンを無効にする/グレーアウト

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

    そして、それは次のようになります:私は何を持っていることはこれである私が承認リンクボタンをクリックすると example image

    は、今私が欲しいものです、それは、その後グレーアウトまたはその機能を失うことになります。 しかし、それは私がをクリックした行のためだけです。どのように私はそれを行うことができますか?途中でここにそれのための背後に私のコードは次のとおりです。

    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:私は、私はまた、可能な場合は、行全体がグレー表示されていることを検討提供された画像に基づいて

    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"; 
    

    実際にあなたが行内部のチェックボックスも、見つけなければならない:インクボタン後の場合と同様にその役に立たないが、このように、あなたはあなたのLinkBut​​tonコントロールを見つけ、それを無効にする必要が

    +0

    これらのいずれかを使用してについて何: 'e.Row.Attributes e.Row.CssClass' – Legends

    +0

    はどこ私はそれを先生を置くのですか?それはcssclassから何を得るのですか? – faufao

    答えて

    0

    をクリックします。 また、それが無効に見えるように行にスタイルを追加することができます。

    row.CssClass = "row-disabled"; 
    
    <style> 
        tr.row-disabled{ 
         color:gray; 
        } 
    </style> 
    
    関連する問題