2013-06-05 29 views
0

我有三個複選框:待定,已批准和已拒絕。我正在使用複選框來過濾我的GridView。拒絕過濾器不工作

這裏是我的過濾代碼:

string sqlfilter = "id >= 1"; 
    DataView dv = new DataView(ClassBiller.FilterPendingConsumer()); 

    if (Pend.Checked) 
    { 
     sqlfilter += " AND (Status = 'Pending')"; 
    } 

    if (Approve.Checked) 
    { 
     sqlfilter += " OR (Status = 'Approved')"; 
    } 

    if (Reject.Checked) 
    { 
     sqlfilter += " OR (Status = 'Rejected')"; 
    } 

    dv.RowFilter = sqlfilter; 

    gvtransaction.DataSource = dv; 
    gvtransaction.DataBind(); 

我的問題是,我的過濾器,並批准拒絕不工作。示例:當我檢查

(在前兩個場景中正常工作): (1)待定:gridview將顯示具有掛起狀態的帳戶,並且如果沒有待處理狀態,它將不顯示帳戶。 (2)待定和四月份:當我查看已批准和待定時,它將顯示具有已批准和待定狀態的帳戶。

批准或拒絕(問題) (3):假設是,它會顯示與批准或拒絕狀態的帳戶,但發生的事情是,它顯示了所有帳戶

請幫助...

回答

1

試試這個

string sqlfilter = "id >= 1"; 
     DataView dv = new DataView(ClassBiller.FilterPendingConsumer()); 

     if (Pend.Checked) 
     { 
      sqlfilter += " AND (Status = 'Pending')"; 
     } 

     if (Approve.Checked) 
     { 
      sqlfilter += (sqlfilter.Contains("AND") ? "OR" : "AND") + " (Status = 'Approved')"; 
     } 

     if (Reject.Checked) 
     { 
      sqlfilter += (sqlfilter.Contains("AND") ? "OR" : "AND") + " (Status = 'Rejected')"; 
     } 

     dv.RowFilter = sqlfilter; 

     gvtransaction.DataSource = dv; 
     gvtransaction.DataBind(); 
+0

工作...謝謝... – aianLee