2012-01-05 6 views
1

GridViewの特定の値に基づいて行を非表示にするにはどうすればよいですか?任意の値に基づいてグリッドビューの行を非表示にする方法

たとえば、グリッドビューが5列あり、列3の値が空白の場合、その行を表示したくない場合はその行を非表示にする必要があります。そのため、グリッドビューでは、列3に任意の値が設定されている行のみを表示する必要があります。 これはGridViewのRowDataBound -eventで行うことができますが、どうすれば実際にそれを隠すことができますか?

+4

を使用することができます。それに応じて取得するようにクエリを作成します。 –

+2

私は2番目のPankajsのコメントです。あなたがコントローラで簡単なチェックをすることができるとき、ビューにそれを隠すポイントはありません。これにより帯域幅が節約され、実装が容易になります.SQL文にwhere句を追加します。 – Doomsknight

答えて

0

RowDataBoundイベントを追加し、次のように実行します。

if (e.Row.Cells[2].Text == "") e.Row.Visible = false; 

は、これが役立つことを願っています。

5

はこれを試してください:空白の性質を持っているレコードをフェッチする理由

private void GridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.Cells[2].Text == "") 
     e.Row.Visible = false; 
} 
+0

情報を追加するだけで、DevexpressはCustomRowFilterの使用を推奨します。それはかなりうまくいく。 https://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsBaseColumnView_CustomRowFiltertopic –

1
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    e.Row.Visible = false; 
} 
0

あなたはデータバインドメソッド

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    foreach (GridViewRow rw in GridView1.Rows) 
    { 
     TextBox tx = (TextBox)rw.FindControl("txtHC"); 

     if (tx.Text == "Value") 
      rw.Visible = false; 

    } 
} 
関連する問題