easyui datagrid用 insertRow 添加的一行数据怎么取出?

图片说明

datagrid的信息是这样的

 $('#dg3').datagrid({width:'100%',height:'100px',
                    columns:[[    
                        {field:'id',title:'ID',width:100},    
                        {field:'loginId',title:'用户名',width:100},    
                        {field:'name',title:'姓名',width:100},
                        {field:'a',title:'操作',width:100,formatter:function(value,row,index){
                            return '<a href="#" onclick="editUser('+row.loginId+')">修改</a >/<a href="#" onclick="delUser('+row.id+','+index+')">删除</a>';
                        },align:'right'}
                    ]]    
                });

editUser函数是这样的

 function editUser(loginId){
    alert(loginId);
}

那一行的数据是通过文本框查询出来的

 function chaxun(){
    var loginId = $("#text1").val();
    //把loginId传到后台
    $.ajax({
        url:"${basePath}/dba/checkLoginId",
        type:"post",
        data:{"loginId":loginId},
        dataTypt:"json",
        success:function(result){
            if(result==0){
                $("#m3").css({"color":"#00ff00"}).text("用户名不存在");
            }else{
                console.log(result);
                var obj = eval('(' + result + ')');
                $('#dg3').datagrid('insertRow',{
                    index: 0,   // 索引从0开始
                    row: {
                        id: obj.id,
                        loginId: obj.loginId,
                        name: obj.name
                    }
                });
            }
        }
    });

我的想法是点击“修改”标签可以调用editUser函数,把loginId显示出来,就是用户名那一列的内容显示出来,现在报的错是editUser(user),user找不到。user就是用户名是通过row.loginId找到的,已经接收到editUser函数里了,为什么会无法输出

5个回答

onclick事件要这样写:onclick="editUser(\''+row.loginId+'\')
需要再用一个转义的单引号包一下,不然执行的时候,javascript会把loginId这个值当成是变量,而不是字符串

yaqiukasi
yaqiukasi 厉害大佬,想了一下午没做出来,用你的方法问题一下就解决了
一年多之前 回复

loginId是局部变量,editUser(loginId)中的参数值是空吧,可以通过row重新获得loginId

yaqiukasi
yaqiukasi 谢谢,是这样的
一年多之前 回复
xyt3198
xyt3198 回复yaqiukasi: 你报错不是都已经显示editUser(tiger)了吗?那说明tiger这个值已经取到了,只是你调用editUser这个函数的时候,程序认为你的tiger是变量,你需要再加一个引号才能让程序识别为字符串"tiger"
一年多之前 回复
yaqiukasi
yaqiukasi 具体应该怎么做呢,哪个地方的代码要改?
一年多之前 回复

你现在能弹出loginId的对话框吗?

yaqiukasi
yaqiukasi 但为什么报的错是editUser(user),如果我换一个用户名,比如tiger,它也报错是editUser(tiger)。如果不能这样获取数据,那么怎样获取datagrid这一行的数据?
一年多之前 回复
congyeyan9940
笨笨的程序员啊 回复yaqiukasi: 那就是你的row.loginId 没有获取到值
一年多之前 回复
yaqiukasi
yaqiukasi 不能弹出对话框,不知道为什么,user已经接收到了
一年多之前 回复

row[0]['loginId']

“操作”列的formatter函数这样写:
function(value,row,index){
return '修改/删除';
}
如果你delUser的两个参数是字符串的话,也要一并修改,如果id是数字类型的话,可以不加引号

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问