CodeCharge Studio | All ASP PHP Perl ColdFusion Java C#.NET VB.NET |
This example shows how to retrieve values from a Listbox which allows for the selection of multiple values. In this case, we have a Grid called Tasks which receives an input parameter called s_Project. The value of s_Project originates from a multiselect Listbox control in a Search form.
<select name="{s_Project_Name}" multiple>
Function Tasks_DataSource_BeforeBuildSelect(Sender) ' "s_Project" contains the comma delimited string with the selected values if CCGetParam("s_Project", Empty) <> Empty then If Tasks.DataSource.Where <> Empty Then _ Tasks.DataSource.Where = Tasks.DataSource.Where & " AND " Tasks.DataSource.Where = Tasks.DataSource.Where &_ "task_project_id IN ("&CCGetParam("s_Project", Empty) &")" End if End Function
function Tasks_DataSource_BeforeBuildSelect(& $sender) { global $Tasks; $s_Project = CCGetParam("s_Project", ""); if (count($s_Project) > 0 AND is_array($s_Project)) { foreach ($s_Project as $key => $value) { if ($Projects != "") $Projects = $Projects.","; $Projects = $Projects.$value; } if ($Tasks->DataSource->Where != "") $Tasks->DataSource->Where .= " AND "; if ($Projects != "") $Tasks->DataSource->Where .= " tasks.project_id IN (".$Projects .")"; } }
sub Tasks_DataSource_BeforeBuildSelect() { $s_Project = CCGetParam("s_Project", ""); if (ref($s_Project) eq "ARRAY") { for ($i=0; $i <= $#{$s_Project}; $i++ ) { if ($Projects ne "") { $Projects .= ","; } $Projects .= $s_Project->[$i]; } } elsif (length($s_Project)) { $Projects = $s_Project; } if ($Tasks->{DataSource}->{Where} ne "") { $Tasks->{DataSource}->{Where} .= " AND "; } if ($Projects ne "" ) { $Tasks->{DataSource}->{Where} .= " tasks.project_id IN (".$Projects .")"; } }
<!---Tasks_BeforeBuildSelect ---> <CFMODULE Template="CCGetParam.cfm" strName="s_Project" outputVar="Projects"> <!-- "Projects" contains the comma delimited string with the selected values --> <CFIF Projects NEQ ""> <CFIF strWhere NEQ ""> <CFSET strWhere=strWhere & " AND "> </CFIF> <CFSET strWhere=strWhere & " tasks.project_id IN (#Projects#)"> </CFIF>
//Tasks_BeforeBuildSelect String[] s_Project = e.getPage().getHttpGetParams().getParameterValues("s_Project"); if (s_Project != null && s_Project.length > 0 ) { StringBuffer projects = new StringBuffer(); for ( int i = 0; i < s_Project.length; i++ ) { if ( projects.length() > 0 ) { projects.append(", "); } projects.append(s_Project[i]); } StringBuffer where = null; if ( ! StringUtils.isEmpty(e.getCommand().getWhere()) ) { where = new StringBuffer(e.getCommand().getWhere()).append(" AND "); } else { where = new StringBuffer(); } if (projects.length() > 0) { where.append("tasks.project_id IN ("+projects.toString()+")"); e.getCommand().setWhere(where.toString()); } }
'Tasks_BeforeBuildSelect If IsNothing(System.Web.HttpContext.Current.Request("s_Project")) Then CType(Select, TableCommand).Where = "tasks.project_id IN (" + System.Web.HttpContext.Current.Request("s_Project") +")" CType (Select, TableCommand).Operation = "AND" CType (Count, TableCommand).Where = "tasks.project_id IN (" + System.Web.HttpContext.Current.Request("s_Project") + ")" CType (Count, TableCommand).Operation = "AND" End If
//Tasks_BeforeBuildSelect if(System.Web.HttpContext.Current.Request["s_Project"]!=null) { ((TableCommand)Select).Where = "tasks.project_id IN (" + System.Web.HttpContext.Current.Request["s_Project"] +")"; ((TableCommand)Select).Operation = "AND"; ((TableCommand)Count).Where = "tasks.project_id IN (" + System.Web.HttpContext.Current.Request["s_Project"] + ")"; ((TableCommand)Count).Operation = "AND"; }