找回密码
 注册成为天翎用户
查看: 1609|回复: 9

获得用户选择框的值

[复制链接]
yangxin 发表于 2012-2-8 17:35:14 | 显示全部楼层 |阅读模式
本帖最后由 purple 于 2012-2-8 20:49 编辑

我的表单上有两个字段
一个时用户选择框字段q     
另一的是单行文本框b
单行文本框的值获得用户选择框的值脚本如下:
var user1 = getItemValue("q");
user1;
两个字段我用了刷新 重计算
可以实现选择好了q的值后b自动填入一个值
但是前台q中的值是 “小明”
b中的值却是  11e1-4c95-0e620bca-878f-73d1583b885a
我要怎么活
purple 发表于 2012-2-8 17:57:25 | 显示全部楼层
您好,这是正常的,用户选择框返回的是ID,您再转换一下就好了,首先使用函数getUserById,取得用户对象,最后用用户对象,取得其名称即可。具体实现可参考以下脚本:
ar userid = getItemValueAsString("id");
var userVO = getUserById(userid);
var name = userVO.getName();
name;
回复

使用道具 举报

 楼主| yangxin 发表于 2012-2-8 18:12:40 | 显示全部楼层
报错了
我的脚本
var userid = getItemValueAsString("收件人");
var userVO = getUserById(userid);
var name = userVO.getName();
name;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
回复

使用道具 举报

purple 发表于 2012-2-8 18:20:57 | 显示全部楼层
错误信息是不能让getName()为空,应该是您的用户对象为空所导致的。您用打印语句定位一下问题,即,分别将userid 、userVO打印出来,然后在debug下看一下打印出来的值。
回复

使用道具 举报

 楼主| yangxin 发表于 2012-2-8 18:25:46 | 显示全部楼层
userid值为11e1-4c78-2ea24be4-bf9b-e3421da5b9cd
userVO值为cn.myapps.core.user.ejb.UserVO@1227db7
是有值的
回复

使用道具 举报

kimi 发表于 2012-2-8 19:28:45 | 显示全部楼层
本帖最后由 purple 于 2012-2-8 20:49 编辑

楼主您好:出现该错误的原因是首页加载进来,用户选择框没有值,所以其他控件获取它的值时会报错,这就需要在代码中加一个判断,具体代码如下:
var userid = getItemValueAsString("用户选择框");
var name="";
if(userid!=null &&userid.trim().length()>0)
{
var userVO = getUserById(userid);
name = userVO.getName();
}
name;
有问题,我们再沟通
回复

使用道具 举报

 楼主| yangxin 发表于 2012-2-9 09:39:33 | 显示全部楼层
用户选择框我选择一个用户的时候可以拿到值了,要是选择多个用户的时候就报错了
回复

使用道具 举报

 楼主| yangxin 发表于 2012-2-9 11:37:50 | 显示全部楼层
本帖最后由 purple 于 2012-2-8 20:49 编辑

我的表单上有两个字段
一个时用户选择框字段q     
另一的是单行文本框b
单行文本框的值获得用户选择框的值脚本如下:
var user1 = getItemValue("q");
user1;
两个字段我用了刷新 重计算
可以实现选择好了q的值后b自动填入一个值
b文本框的值脚本如下
var userid = getItemValueAsString("用户选择框");
var name="";
if(userid!=null &&userid.trim().length()>0)
{
var userVO = getUserById(userid);
name = userVO.getName();
}
name;

现在问题是前台q(用户选择框)中的值是 “小明”
的时候b 可获取“小明”
但是前台q(用户选择框)中的值是 “小明;李四”
的 时候就不能获取了就报错了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
回复

使用道具 举报

kimi 发表于 2012-2-9 12:11:02 | 显示全部楼层
楼主您好:如果是用户选择框选择多个值时,文本框要获取选择的用户名称代码如下:
var userid = getItemValueAsString("用户选择框");
var docids = splitText(userid,";");
var name="";
for(var i=0;i<docids.length;i++)
{
     if(docids[i]!=null &&docids[i].trim().length()>0)
     {
         var userVO = getUserById(docids[i]);
         name += userVO.getName()+";";
    }
}
name;
有问题,我们再沟通!
回复

使用道具 举报

 楼主| yangxin 发表于 2012-6-21 17:40:17 | 显示全部楼层
问题已处理 请不要回复了
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 19:53

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表