1

我编写了以下内容来显示数据库的不同行和列。在每一行前面,都有一个删除按钮。删除按钮的 Onclick 应该调用一组函数/执行在 Onclick 事件中编写的代码(检查下面)..现在发生的是当 JSP 页面加载时,它进入方法内部。因此,如果有 3 行,它将调用该方法 3 次....帮助!它应该只调用删除按钮的“ON CLICK”这些方法......

      <tbody>    <% 
                int x;

                while(rs2.next()){
                    x=0;
                    %>
                    <tr><%
                    while(x<d)
                    {
                    x=x+1;
                 %>
            <td>  <%
                    out.print(rs2.getString(x));%></td>
            <% } %>
          <td> <input type="button" value="Delete" class="btn" id="DeleteBtn" onclick="<% System.out.print("Delete button"); tableupdateBean.setupdateRow(rs2.getString(x)); tableupdateBean.DeleteRow();%>" /> </td>
           </tr> 
            <% } %>
     </tbody>
4

3 回答 3

2

看起来你在 javascript 和 jsp scriptlet 之间混合了一些东西。

onclick 是一个 javascript 事件,当一个元素被点击时发生,在本例中是一个按钮。
onlick=""应该引用一个 javascript 函数,但在您的代码示例中,您有一个 scriptlet。

Scriptlet 在调用 JSP 时执行,因此在页面加载时执行。

于 2013-10-17T06:02:57.750 回答
0

onclick 是客户端事件,您只能指定在此事件发生时将调用的任何 javascript 函数。您不能指定任何服务器端 jsp/java 函数。

于 2013-10-17T06:01:01.017 回答
0

您需要构造一个删除 url 以Unique Id从服务器端识别删除行并重新加载整个页面。

客户端

<a href="/yoururl?mode=delete&id="+<Unique Id>>Delete Row</a>

服务器端

if("delete".equals(request.getParameter("mode"))
{
String id = request.getParameter("id");

// write code for deletion
}

//redirect to the same page again

如果您不想重新加载整个页面,那么您必须编写ajax调用以在服务器端执行删除并使用javascript从表中删除行

于 2013-10-17T10:00:54.347 回答