• easyUi 学习笔记 (二 ) 使用tabs 里datagridview 发送ajax请求 不访问后台的问题


    这个BUG 我花了一个半小时, 还是看不出哪里的问题,  于是就百度到这么一段话,我需要记住

    <======================================================================================================================>

       使用tabs标签, 本身这个标签就在一个html里面,

       easyui中加载外部界面的组件,例如:panel,window,dailog,tabs等。请确保你引入的界面是一个html片段。

       html片段正确的写法再次提醒不要出现<html><head><body>三个标签:

    <======================================================================================================================>

    标准的html 结构是

    <html>
    <head>
        <title>这是完整的html结构</title>
        <script></script>
    </head>
    <body>
    <div>内容</div>
    </body>
    </html>

    本身tabs 就在标准的html  中, 一般我们写html代码都应该遵循此此结构。而所谓的html片段就是上面完整结构中的内容部分。

    虽然我们也会建立一个文件如b.html来保存html片段,但是在这个b.html中我们只需要编写<body>里面的内容不需要在把html的标准结构写出来。

    详情请看:http://www.cnblogs.com/summer_adai/p/3548252.html

    百度地址  

      下面是我的代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ include file="/common/page.jsp" %>     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
    <body>
    <script type="text/javascript" src="${pageContext.request.contextPath }/easyui/datagrid-detailview.js"></script>
         <script type="text/javascript">
         $(function(){
                   $("#dg").datagrid({
                title:'汽车列表',
                singleSelect:true,
                fitColumns:true,
                pagination:true,
                rownumbers:true,
                toolbar:'#toolbar',
                url:'cars/findAllCars.action',
                columns:[[
                    {field:'carnumber',title:'车牌号',100},
                    {field:'cartype',title:'类型',100},
                    {field:'color',title:'颜色',100},
                    {field:'price',title:'价格',80},
                    {field:'rentprice',title:'租金',100},
                    {field:'deposit',title:'押金',100}
                ]],
                view: detailview,
                detailFormatter:function(index,data){
                        //alert(index+"----------"+data.carnumber);
                        return "<table class='tbls' style='100%' border='1'>"+
                                "<tr><td rowspan='2' class='tds' width='34.6%'><img src='"+data.carimg+"'/></td>"+
                                "<td class='tds'>租赁状态:"+data.isrenting+"</td></tr>"+
                                "<tr><td class='tds'>描述:"+data.cardesc+"</td></tr>"+
                                "</table>";
                    } /*  ,
                onExpandRow:function(index,data){
                        alert(index+"----------"+data.carnumber);
                    }  */
                }); 
               });
            
            </script>
            
    </head>
    
            
              <table id="dg" class="easyui-datagrid" style="700px;height:450px;" align="center">
             
       </table>
        <!-- 添加工具栏 -->
         <div id="toolbar">
            <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" 
                plain="true" onclick="newCars()">添加车辆</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit" 
                plain="true" onclick="editCars()">编辑车辆</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" 
            plain="true" onclick="destroyRole()">删除角色</a>
           
        </div>
        <!-- 指定添加角色信息需要的对话框 -->
        <div id="dlg" class="easyui-dialog" style="600px"
                closed="true" buttons="#dlg-buttons">
              
                  <!-- 添加div层显示上传的图片 -->
                  <div style="position: absolute; 180px;
                  height: 180px;border: red solid 1px;left:65%;top: 20%" id="img">
                      <img  src="" id="carImg">
                  </div>  
                
            <form id="fm" method="post" novalidate style="margin:0;padding:20px 50px">
                <div style="margin-bottom:20px;font-size:14px;border-bottom:1px solid #ccc">车辆信息</div>
                <div style="margin-bottom:10px">
                    <input name="carnumber" class="easyui-textbox" required="true" 
                    label="车牌号:" style="60%">
                </div>
                <div style="margin-bottom:10px">
                    <input name="cartype" class="easyui-textbox" required="true" 
                    label="类型:" style="60%">
                </div>
                <div style="margin-bottom:10px">
                    <input name="color" class="easyui-textbox" required="true" 
                    label="颜色:" style="60%">
                </div>
                <div style="margin-bottom:10px">
                    <input name="price" class="easyui-textbox" required="true" 
                    label="价格:" style="60%">
                </div>
                <div style="margin-bottom:10px">
                    <input name="rentprice" class="easyui-textbox" required="true" 
                    label="租金:" style="60%">
                </div>
                <div style="margin-bottom:10px">
                    <input name="deposit" class="easyui-textbox" required="true" 
                    label="押金:" style="60%">
                </div>
                 <div style="margin-bottom:10px">
                    <input name="isrenting" class="easyui-textbox" required="true" 
                    label="状态:" style="60%">
                </div>
               
                <div style="margin-bottom:10px">
                    <input name="cardesc" class="easyui-textbox" required="true"
                    data-options="label:'描述:',multiline:true"
                     style="100%;height:100px">
                </div>
                <input type="hidden" id="cimg" name="carimg">
                </form>
                <form id="fm2" method="post" enctype="multipart/form-data" 
                    novalidate style="margin:0;padding:1px 50px">
                    <div style="margin-bottom:10px">
                        <input name="mf" class="easyui-filebox"  
                        label="图片:" style="60%">
                        <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" 
                    plain="true" onclick="uploadCarsImg()">上传图片</a>
                    </div>
                </form>
            
        </div>
        <!-- 指定提交表单的按钮 -->
         <div id="dlg-buttons">
            <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="saveCars()" style="90px">Save</a>
            <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')" style="90px">Cancel</a>
        </div>
        
         
        <!-- --------------------------授权的对话框------------------------ -->
        <!-- 指定添加角色信息需要的对话框 -->
        <div id="mdlg" class="easyui-dialog" style="400px;height: 400px"
                closed="true" buttons="#mdlg-buttons">
                 <div id="treePrivilege" class="ztree"></div>
        </div>
        
      
      <script type="text/javascript">
              /***
              发送异步上传图片的请求
              **/
              function uploadCarsImg(){
                  //获得页面的表单多对象
                  var formData = new FormData($("#fm2")[0]);
                  $.ajax({
                      url:'uploadCarImg.action',
                      type:'POST',
                      data:formData,
                      async:false,
                      cache:false,
                      contentType:false,
                      processData:false,
                      success:function(path){
                          $("#carImg").attr({src:path});
                          $("#cimg").val(path);
                      },
                      error:function(rv){
                          alert(rv);
                      }
                  });
              }
      
            var url;
            //打开添加角色信息的对话框
            function newCars(){
                //打开对话框
                $('#dlg').dialog('open').dialog('center').dialog('setTitle','新增车辆');
                $('#fm').form('clear');//清空对话框的表单
                 $('#fm2').form('clear');//清空对话框的表单
                $('#carImg').attr({src:''});
                url = 'addCars.action';
            }
            
            /*
            打开修改角色信息的对话框
            */
            function editCars(){
                //获得list列表中被选中的行
                var row = $('#dg').datagrid('getSelected');
                if (row){
                    $('#dlg').dialog('open').dialog('center').dialog('setTitle','修改角色');
                    $('#fm').form('load',row);//将选中的行的数据(json),在表单中进行回显
                    url = 'updateCars.action';
                    //情况表单二
                    $('#fm2').form('clear');
                    //回显图片
                    $('#carImg').attr({src:row.carimg});
                    //将车辆图片原来的路径保存到隐藏域
                    $('#cimg').val(row.carimg);
                    
                }
            }
            //发送异步请求,保存输入的角色信息
            function saveCars(){
                //发送ajax请求提交表单
                $('#fm').form('submit',{
                        url: url,
                        onSubmit: function(){
                            return $(this).form('validate');
                        },
                        //异步请求发送后,处理响应结果的回调函数
                        success: function(result){
                            //var result = eval('('+result+')');
                            if (result.errorMsg){
                                $.messager.show({//显示错误消息的消息框
                                    title: 'Error',
                                    msg: result.errorMsg
                                });
                            } else {//后台没有异常,正常响应,状态200
                                $('#dlg').dialog('close');        // close the dialog
                                $('#dg').datagrid('reload');    // 重新加载datagrid控件
                            }
                        }
                });
            }
            
             
        </script>
            
    </body>

     仔细发现   我的datagridview 发送ajax请求 是在<body>标签里,   这个问题一定要注意,包括学习别的前端框架 也是一样的道理

  • 相关阅读:
    516. Longest Palindromic Subsequence最长的不连续回文串的长度
    java之spring之整合ssh-2
    java之spring之整合ssh
    java之spring之spring整合hibernate
    微服务之初了解(一)
    java之spring之scope和autowiring
    java之spring之依赖注入
    java之spring之对象的创建
    java之spring之配置讲解
    asp.net core 系列之静态文件
  • 原文地址:https://www.cnblogs.com/bignew/p/7280903.html
Copyright © 2020-2023  润新知