我有两个单选按钮,按升序和降序排列。当我单击升序单选按钮时,要从数据库中按升序显示名称。如何将参数与数据库连接以获取数据。
我已附上以下代码,
员工排序:
<input type="radio" name="emp_sorting" value="emp_ascending" id="emp_ascending"
onkeyup="changeName();">
emp_ascending
<input type="radio" name="emp_sorting" value="emp_descending" id="emp_descending"
onkeyup="changeName();">
emp_descending
<a id="emp_name" href="">View</a><br><br>
<script>
function changeName() {
var input_value = document.getElementById("emp_ascending").value;
var input_value1 = document.getElementById("emp_descending").value;
var context_path = "<%=request.getContextPath()%>";
var create_href = context_path + "/frameset__report=report_sort.rptdesign&e_name="
+ input_value +" &emp_name=" + input_value1
+ "&__parameterpage=false" ;
emp_name.href= create_href;
}
</script>
答案 0 :(得分:1)
您需要一个名为例如&#34; sort_order&#34;的报告参数,与员工姓名分开处理排序顺序。在您的代码中,您实际上插入单选按钮值以报告名为&#34; e_name&#34;的参数。和&#34; emp_name&#34;,这对我们既不了解排序顺序的情况也不是很有帮助。
然后,在数据集的beforeOpen方法中,您可以使用如下表达式替换默认排序顺序:
this.queryText=this.queryText.replace(" ASC"," "+params["sort_order"].value);
为了防止任何SQLIA漏洞,您应首先检查params [&#34; sort_order&#34;]。value是否等于&#34; ASC&#34;或&#34; DESC:
var sort=params["sort_order"].value;
if (sort=="ASC" || sort=="DESC"){
this.queryText=this.queryText.replace(" ASC"," "+sort);
}
虽然另一种方法比单选按钮容易得多,但没有客户端javascript的单字节:在代表ASC和DESC方向的图像上定义本机birt钻取操作。查看实例with this report,列标题中有一个图像,允许动态对表进行排序。此图像未显示在PDF导出中(birt&#34; visibility&#34; property)。