asp.net - C# add filter parameters and expression to listview dynamically -


i dynamically set filtering of listview based on textboxes since implicitly don't know number , names of collumns. i've made creating texboxes, setting filterparams , filterexpression in code behind - page loading , working without error after changing text in of textboxes listview not filtering. when debuging see filterexpression , filtercontrols exist attributes expect. can't see error , appriciate help. thanks!

on page_load have following code:

protected void page_load(object sender, eventargs e)     {      // code datatable listview      // , put columns tablecols          tablecols = dtable.columns;        // creating of htmltablerow textboxes filtering          htmltablerow htr_filterrow = new htmltablerow();         htr_filterrow.id = "filterrow";           foreach (datacolumn col in tablecols)         {             htmltablecell htc = new htmltablecell();             textbox tb = new textbox();             tb.id = "tb_" + col.columnname;              htc.controls.add(tb);             htr_filterrow.controls.add(htc);         }          placeholder_filterrow.controls.add(htr_filterrow);        // setting filterparameters of listview          if (sqldatasource1.filterparameters.count == 0)         {             foreach (datacolumn col in tablecols)             {                 controlparameter filter_par = new controlparameter();                 filter_par.name = col.columnname;                 filter_par.controlid = "listview1$tb_" + col.columnname + "";                 filter_par.propertyname = "text";                 sqldatasource1.filterparameters.add(filter_par);             }         }       // setting filterexpression listview          string filter_express = "";         int = 0;          foreach (datacolumn col in tablecols)         {             if (filter_express.length == 0)             {                 filter_express = filter_express + " ([" + col.columnname + "] '*{" + + "}*' or [" + col.columnname + "] null)";             }             else                 filter_express = filter_express + " , ([" + col.columnname + "] '*{" + + "}*' or [" + col.columnname + "] null)";             = ++i;         }                 sqldatasource1.filterexpression = filter_express;      } 

i have found solution. defaultvalue set filterparameters have missed. without defaultvalue approach works fine 1 filterparameter not many.

after change in code started work.

controlparameter search_par = new controlparameter(); search_par.name = "tb_search"; search_par.controlid = "tb_search"; search_par.propertyname = "text"; search_par.defaultvalue = "*"; sqldatasource1.filterparameters.add(search_par); 

Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

c# - How do I get the Nth largest element from a list with duplicates, using LINQ? -

jsp - "Sending a redirect is forbidden after the response has been committed" in sendRedirect -