c# - dataview rowfilter not working as expected -


please go easy on me this, i'm totally self taught c# , chance play in spare time!

i have datatable contains 1 column of boolean type. binding table datagridview , using boolean type display column of empty checkboxes, user can check box next number of rows. have "show checked rows" checkbox on form which, when checked, filters datagridview show checked rows, code looks this:

filling datagrid:

public void filldatagridview() {     dtmembers.columns.add("print", typeof(bool));     dtmembers.columns.add("contact id", typeof(string));     dtmembers.columns.add("membership number", typeof(int));     dtmembers.columns.add("first name", typeof(string));     dtmembers.columns.add("last name", typeof(string));     dtmembers.columns.add("current application type", typeof(string));     dtmembers.columns.add("email address", typeof(string));     dtmembers.columns.add("membership type", typeof(string));     dtmembers.columns.add("approval date", typeof(datetime));      dgmembers.datasource = dtmembers; } 

"show checked rows" check event:

private void cbshowselected_checkedchanged(object sender, eventargs e) {     if (cbshowselected.checked)         dtmembers.defaultview.rowfilter = "print = true";     else         dtmembers.defaultview.rowfilter = string.empty; } 

the above code works fine when users ticks various rows , checks "show checked rows" point. there couple of users need check large number of rows so, in interest of usability, added code if type membership number in search textbox, datagridview filtered membership number, if user types + symbol , there 1 row in filter view tick row. did using following code:

private void textbox1_textchanged(object sender, eventargs e) {     if (textbox1.text.length > 0)     {         if (textbox1.text.substring(textbox1.text.length - 1) != "+")         {             dtmembers.defaultview.rowfilter = string.format("[_rowstring] '%{0}%'", textbox1.text);         }         else         {             if (dgmembers.displayedrowcount(false) == 1)             {                 dgmembers.rows[dgmembers.firstdisplayedcell.rowindex].cells[0].value = true;                 textbox1.text = string.empty;             }         }     } } 

that code check checkbox in row, if go , check "show checked rows" row isn't included in resulting filtered view. if manually check couple of rows , check 1 using + symbol rows manually check shown 1 using + symbol not. debugged code sure bool being set true row, , i'm stumped! appreciated.

i managed solve myself in end, believe problem was setting datagridview value rather value in datatable datagridview bound. using following code instead works:

bindingmanagerbase bm=this.dgmembers.bindingcontext[this.dgmembers.datasource, this.dgmembers.datamember]; datarow dr = ((datarowview)bm.current).row; dr["print"] = true 

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -