2016-12-18 4 views
2

私はグリッドビューを持っていて、このグリッドにはいくつかの行に "Department"というフィールドがあります。私が欲しいのは、フィールドの値を読み取って、それが文字列 "Industrial"と等しい場合は、行を隠して表示しないようにするコードです。その行のフィールドからの値に基づいてgridviewから行を非表示

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    if (e.Row.Cells[4].Text == "industrial") 
     e.Row.Visible = false; 
} 

をしかし、それは、(e)が定義されていないと言っ保持し、(.Row)のようなものはありません。

は、私が試してみました。

答えて

1

GridViewRowEventArgse.Rowにアクセスできますが、RowCreatedRowDataBoundイベントで使用されています。かわりにSelectedRowプロパティを使用することができますGridView

var gridView = (GridView)sender; 

if (gridView.SelectedRow.Cells[4].Text == "industrial") 
    gridView.SelectedRow.Visible = false; 

更新日:

をページがロードされるときPage_Loadイベント内forループを配置し、行を非表示にします。

protected void Page_Load(object sender, EventArgs e) 
{ 
    // ... 
    for (int i = 0; i < GridView1.Rows.Count; i++) 
    { 
     if (GridView1.Rows[i].Cells[4].Text == "industrial") 
      GridView1.Rows[i].Visible = false; 
    } 
} 
+0

ありがとう、私は何が起こるか試してみます。 –

+0

それは働いたが、事は私が行を選択したときにページが起動しないときに行を非表示にしたい、ヘルプのおかげで –

+0

更新された答え。 – abdul

関連する問題