1

前の行のデータが と等しい場合はチェックし、等しく--ない場合--は次の行のボタンを有効にします

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       if (DataBinder.Eval(e.Row.DataItem, "time_start").ToString() == "--")
       {
            Button btn = ((Button)e.Row.FindControl("Edit_Button"));
            btn.Enabled = false;
       }   
    }
}
4

2 に答える 2

3

を使用して、このようにすることもできますGridView1.Rows[e.Row.RowIndex - 1]

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        GridViewRow prevrow = GridView1.Rows[e.Row.RowIndex - 1];
        if( prevrow.RowType == DataControlRowType.DataRow)
        {
            // Your code for manipulating prevrow
        }
        if (DataBinder.Eval(e.Row.DataItem, "time_start").ToString() == "--")
        {
            Button btn = ((Button)e.Row.FindControl("Edit_Button"));
            btn.Enabled = false;
        }
    }
}
于 2014-10-17T06:29:41.993 に答える
0

これを行う1つの方法は次のとおりです。

  • タイプのフィールドpreviousRowをクラスに作成しますGridViewRow

  • GridView.DataBindingイベント ハンドラーで、このフィールドを null に初期化します。このイベントは、RowDataBound イベントが発生する前に、データ バインドが開始されたときに発生します。

  • GridView.RowDataBoundイベント ハンドラーで、処理 ( との比較を含む)を実行してpreviousRowから、 を設定しpreviousRow = e.Rowます。

于 2014-10-17T05:42:58.353 に答える