C# 。net 后台调用js带参方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 。net 后台调用js带参方法相关的知识,希望对你有一定的参考价值。
strhtml += "<tr id='" + i + "'><td colspan='2' ><input readonly='readonly' class='txtinput' type='text' style='width:95%' runat='server' name='txtc" + i + "' id='txtc" + i + "' value='" + str + "' /><a style='cursor:pointer; font-size:13px' onclick='javascript:Getdate()'>详情</a></td></tr>";
需要在js方法 Getdate() 传递参数 请问大大们 如何拼接
使用转译字符"\\"
例如:
str=" <a style=\\"cursor:pointer; font-size:13px\\" onclick=\\"javascript:Getdate(\\'"+i+"\\',\\'"+i+"\\');\\">详情</a>"
追问
这样的凭接 无法调用js 中 的 Getdate(i,i)
追答可以的,只是你这里是a标签,试试用<a href="javascript:Getdate(\'"+i+"\',\'"+i+"\');" 如果坚持用onclick事件的话,在a标签里面加上 href="javascript:;"
追问谢谢 使用href 是可以的
参考技术A 可以直接在head中添加js<head runat="server">
<title></title>
<script type="text/javascript">
function Getdate(x,y)
......
</script>
在控件的onclick属性添加:onclick="Getdate(x,y)",把x和y改成你的参数就好了追问
我没直接的那个控件,而是通过拼接而来的 ,所以也要拼接一个事件给他
thymeleaf的初次使用(带参请求以及调用带参js方法)
之前对于前端框架接触较少,第一次接触thymeleaf,虽说看起来并不复杂但我还是花费了好一会儿才弄懂。
话不多少下面就简单说一下我在项目中的应用。
首先是java代码 controller层 将需要在前端展示的信息放入model中:
@RequestMapping("getAll") public String getAll(Model model){ List<ScheduleJob> list = scheduleJobService.getAllJob(); model.addAttribute("list", list); return "sch/quartz/list"; }
之后便是在前端html页面的遍历
1 <tr th:each="job:${list}"> 2 <td th:text="${job.name }">任务名</td> 3 <td th:text="${job.group }">任务组</td> 4 <td th:text="${job.status }">状态</td> 5 <td th:text=‘${job.cronExpression }‘></td> 6 <td th:text="${job.className }">类名</td> 7 <td th:text="${job.description }">描述</td> 8 <td><a href="#" th:href="@{/quartz/pause(name=${job.name},group=${job.group})}">暂停</a></td> 9 <td><a href="#" th:href="@{/quartz/resume(name=${job.name},group=${job.group})}">恢复</a></td> 10 <td><a href="#" th:href="@{/quartz/run(name=${job.name},group=${job.group})}">执行一次</a></td> 11 <td><a href="#" th:href="@{/quartz/delete(name=${job.name},group=${job.group})}">删除</a></td> 12 <td><button id="edit" th:name="${job.name}" th:id="${job.group}" onclick="test(this)">修改cron表达式</button></td> 13 </tr>
这里直接在<tr>标签中 用 th:each 放入需要遍历的内容,以及定义变量名;在<td>标签中用th:text来展示内容。
在<a>标签中用 普通的href不能实现带参的接口请求,所以需要使用 th:href 的这种语法来实现带参的接口请求,参数用()跟在后面就可以。
至于调用js的带参方法就需要用12行那种办法 将参数作为 th 标签的name或者id传入方法中,具体的js方法如下;
1 function test(obj){ 2 var cron = $("#cron").val(); 3 var name = $(obj).attr("name"); 4 var group = $(obj).attr("id"); 5 $.post("edit",{"name":name,"group":group,"cron":cron},function(){ 6 alert("更新成功!!!"); 7 window.location.reload(); 8 }); 9 }
这样就能实现js带参方法的调用,目前来说我所知道的可以实现的就是这种方式。
补充一点,前端遍历的实体类需要重写toString方法,并且必须是如下格式的:
1 @Override 2 public String toString() { 3 StringBuilder builder = new StringBuilder(); 4 builder.append("{name:\""); 5 builder.append(name); 6 builder.append("\", group:\""); 7 builder.append(group); 8 builder.append("\", cronExpression:\""); 9 builder.append(cronExpression); 10 builder.append("\", status:\""); 11 builder.append(status); 12 builder.append("\", description:\""); 13 builder.append(description); 14 builder.append("\", className:\""); 15 builder.append(className); 16 builder.append("\"}"); 17 return builder.toString(); 18 }
这样才能在页面上成功遍历。
对于thymeleaf,目前我也就掌握了这些简单的使用。
以上是关于C# 。net 后台调用js带参方法的主要内容,如果未能解决你的问题,请参考以下文章