1.如何在jsp的js中设置或是获得页面中的值:
获得组件的值:
1.
var cusId = TrainText.serno._getValue();
var cusId = TrainText.serno._obj.element.value;
结果形式是:1010
2.
var paramStr = TrainTextList._obj.getParamStr(['serno']);
结果形式是:cus_id=1010
给组件赋值:
TrainText.cus_name._setValue(cusId);
TrainText.cus_id._obj.element.value = cusId;
2.select删除和添加字典项:
3.pop的使用和自动回传值
1).在第一个jsp中定义一个pop标签,定义其属性url,里面要声明回调方法,如url="getUserInfo.do?returnMethod=returnUserInfo"
2).在第一个jsp的js中定义回调方法function returnUserInfo(data){ },里面具体的实现赋值的方法,如UserTest.user_id._setValue(data.user_id._getValue());
其中,data为从第二个jsp中回传回来的数据对象(一条记录)。
3).在第二个jsp页面中定义一个按钮,触发js事件,如
function doselect(){
var data=UserTestList._obj.getSelectedData();
if(data!=null&&data!="")
{
window.opener["${context.returnMethod}"](data[0]);//调用父页面的回调方法,并把在此页面获得的第一条记录传到其方法中
window.close();
}
else{
alert("请先选择一条记录!");
}
}
4 .tab标签
1).<emp:tabGroup mainTab="base_tab" id="trainTextTabs">
<emp:tab >
</emp:tabGroup>
2).tab中的url和reqParams属性的使用,url中要加do结尾,
5.js中url的使用:
var paramStr = TrainTextList._obj.getParamStr(['serno']);
var url = '<emp:url action="getSAutocodeUpdatePage.do"/>?'+paramStr(注意其格式);
url = EMPTools.encodeURI(url);
window.location = url;
6.给标签添加按钮
组件id._obj.addOneButton(''buttonId,'buttonTitle',点击按钮时触发的js函数),如,
,
7.AJAX的使用:
1).在前台页面中添加js事件:
function getInfo(){
var form = document.getElementById("submitForm");//得到对应的表单
OrgTest._toForm(form);//将对于表空间里面的值赋给form对象
var postData = YAHOO.util.Connect.setForm(form);//将form转换为YAHOO的from
var ca=OrgTest.org_id._getValue();
var handleSuccess = function(o)
{
if (o.responseText !== undefined) {
try {
var jsonstr = eval("(" + o.responseText + ")");//eval()为计算 string 得到的值,jsonstr为封装为一个对象?
} catch (e) {
alert("Parse jsonstr define error!" + e);
return;}
}
var flag=jsonstr.flag;//从json中获得字段值
var message=jsonstr.message;
if(flag)
{alert(message);}
if(!flag)
{alert(message);}
}
var handleFailure = function(o)
{ alert("通讯失败")};
var callback = {
success : handleSuccess,//通讯成功(不是取决于返回的值)就执行success对应方法
failure : handleFailure//ajax//通讯失败,执行该对应的方法
};
var url = '<emp:url action="getNumber.do?org_id='+ca+'"/>';
var obj1 = YAHOO.util.Connect.asyncRequest('POST', url, callback,postData);
}
2).在后台的配置文件中
<action id="getNumber" type="normal" checkSession="true">
<flowInvoker>
<operation class="com.yucheng.cmis.ops.test.orgtest.AjaxTest" />
<transition dest="retPage" />
</flowInvoker>
<outputViews>
<view id="retPage" class="com.yucheng.cmis.view.JSONView">
<output class="com.ecc.emp.data.KeyedCollection">
<field id="flag"/>
<field id="message"/>//代表要返回到前端页面的字段
</output>
</view>
</outputViews>
</action>
3).在AjaxTest类中,要将output里面的字段放到context中,不然前台无法获取
context.addDataField("flag", "success");//将此键值对放到context中
context.addDataField("message", "成功");