2013-06-05 2 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

Смежные вопросы