jcgrid
1.jcgrid实现
<span class="JcGrid" id="MyGrid" listdata="Rds.List.UserList" style="overflow: visible;
width: 100%;" jctype="jcgrid" valstring="Title:主Grid" onaddafter="OnAddAfter();">
<table border="0" width="100%" cellspacing="1" id="Table2">
<tr height="26" align="center">
<td type="indicator" cellvalign="middle" cellalign="center" style="width: 3%;">
</td>
<td name="UserName" style="width: 20%" editor="jcpopup" notallowempty poptype="Url"
valstring='Title:姓名' returnmode="DataList" returnparam="" popparam="" popstyle=""
onpopafter="SetValue()" popurl="">
姓名
</td>
<td name="UserId" hidden>
</td>
<td name="Duty" editor="jcselect" datatype="Enum" enum="Page.Enum.Duty" width="30%"
valstring="Title:现任职务;DataType:String;">
现任职务
</td>
<td name="DutyAfter" editor="jcselect" datatype="Enum" enum="Page.Enum.Duty" width="30%"
valstring="Title:拟任职务;DataType:String;">
拟任职务
</td>
<td type="function" functype="Delete" style="width: 5%;">
删除
</td>
</tr>
</table>
</span>
2.jcgrid数据填充
DataStore ds = new DataStore();
Goodway.Data.DataList dl = new Goodway.Data.DataList(); DbRecord dbrec = new DbRecord(dbAccess, TBNAME, szId);
dfrm = dbrec.ToDataForm("RecData");
dl = DbTool.DataTableToDataList(dbAccess.QueryDataTable("select * from HrSelectionFileObject where Relateid='" + szId + "'")); dl.SetName("UserList");
ds.Add(dl);
3.每一列的用户选择
function OnAddAfter() {
var currentbut = $("#Table2>tbody:last .jcpopup_Button:last");
currentbut.unbind("click").removeAttr('onclick').click(GetUser);
}
function GetUser() {
var url = "/Framework.WebService/HttpHandlers/UserChooser2.aspx?SelectType=User";
var result = window.showModalDialog(url, window, "dialogWidth:800px;dialogHeight:600px;status:yes;resizable:no");
var ids;
var names;
if (result != null && result.length > 0) {
ids = result[0];
names = result[2];
while (ids.indexOf(";") != -1)
ids = ids.replace(";", ",");
while (names.indexOf(";") != -1)
names = names.replace(";", ",");
while (names.indexOf("(") != -1)
names = names.replace("(", "(");
while (names.indexOf(")") != -1)
names = names.replace(")", ")");
}
if (ids.indexOf(",") != -1) {
alert("该处被设置成单项选择!我们将自动截取到您所选择的第一个选择项!")
ids = ids.substring(0, ids.indexOf(","));
names = names.substring(0, names.indexOf(","));
}
$(this).parent().prev().find("input").val(names);
$(this).parent().parent().parent().parent().parent().parent().next().find("input").val(ids);
}
4.点击保存,把数据保存到数据库
function DoSave(){
var df = Co.PageForm.GetDataForm("RecData");
var dl = Co.MyGrid.GetValue();
dl.SetName("MyGrid");
var rtn = Execute.Post("Update", df,dl);
if (rtn.HasError)
rtn.ShowError();
else {
alert("保存成功!");
window.ReturnValue = 12;
window.close();
}
}
后台:
private DataStore Update()
{
DataStore ds = new DataStore();
try
{
DataForm df = this.RequestDs.Forms("RecData");
DbRecord dr = new DbRecord(dbAccess, TBNAME, df.GetValue("Id"));
string FormId = df.GetValue("Id");
string objName = "";
//dr.SetData(df); string strSql = "delete from HrSelectionFileObject where RelateId='" + FormId + "'";
this.dbAccess.ExecSql(strSql); Goodway.Data.DataList dl = this.RequestDs.Lists("MyGrid");
for (int i = ; i < dl.GetItemCount(); i++)
{
DbRecord drsub = new DbRecord(dbAccess, "HrSelectionFileObject");
drsub["RelateId"] = FormId;
drsub["UserID"] = dl.GetItem(i).GetAttr("UserId");
drsub["UserName"] = dl.GetItem(i).GetAttr("UserName");
drsub["Duty"] = dl.GetItem(i).GetAttr("Duty");
drsub["DutyAfter"] = dl.GetItem(i).GetAttr("DutyAfter");
drsub["UserDate"] = DateTime.Now.ToString();
drsub.Update(Guid.NewGuid().ToString());
objName += drsub["UserName"];
} dr["ReviewObject"] = objName;
dr.Update(); ds.Add(DbTool.GetResultParam((int)DbResult.Successful, null, null));
}
catch (DbException dbe)
{
ds.Add(DbTool.GetResultParam((int)DbResult.SqlError, dbe.Message, null));
}
return ds;
}
5.HrSelectionFileObject表对应的表结构

6. 例外一种填充数据方式:比如前端选择某个流程编号,取出数据后在前端填充
jcgrid清除数据
Co["MemberList"].Reset(new DataList());
整体填充
var dlUser = new DataList(di.GetAttr("MembersInfo"));
Co["MyGrid"].SetValue(dlUser);
也可以遍历填充
for (var j = 0; j < dlUser.GetItemCount(); j++) {
var diuser = dlUser.GetItem(j);
Co["MyGrid"].AddRow(
"UserID", diuser.GetAttr("UserID"),
"UserName", diuser.GetAttr("UserName"),
"Sex", diuser.GetAttr("Sex"),
"CardNo", diuser.GetAttr("CardNo"),
"PassportNumber", diuser.GetAttr("PassportNumber"),
"UserDeptID", diuser.GetAttr("UserDeptID"),
"UserDeptName", diuser.GetAttr("UserDeptName"),
"Duty", diuser.GetAttr("Duty"),
"LinkPhone", diuser.GetAttr("LinkPhone"),
"CellPhone", diuser.GetAttr("CellPhone"),
"YearCount", diuser.GetAttr("YearCount"),
"BehaviorSign", BehaviorSign,
"SecureSign", SecureSign,
"Remark", diuser.GetAttr("Remark")
);
document.getElementById("MyGrid_TR" + j + "_UserName").childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].value = diuser.GetAttr("UserName");
}
7.取jcgrid数据
Co.MyGrid.GetValue().ToString()
jcgrid的更多相关文章
随机推荐
- 1.关于Swift
关于SwiftSwift是一种新的编程语言,用于iOS和OS X的应用程序,建立在最佳的C和Objective-C之上,没有C兼容性的限制.Swift采用的安全模式设计,并增加了现代的功能,使编程更简 ...
- linux每日命令(4):pwd命令
Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文 ...
- TCP中的KeepAlive与HTTP中的Keep-Alive
KeepAlive 与 Keep-Alive 前言 昨天被问到了HTTP中Keep-Alive的概念,看名字我只知道是保持连接用的,但是对于他怎么结束连接,为什么要用他这些就不是很清楚了,今天查了一下 ...
- MXNET:卷积神经网络基础
卷积神经网络(convolutional neural network).它是近年来深度学习能在计算机视觉中取得巨大成果的基石,它也逐渐在被其他诸如自然语言处理.推荐系统和语音识别等领域广泛使用. 目 ...
- pandas 学习总结
pandas 学习总结 作者:csj 更新时间:2018.04.02 shenzhen email:59888745@qq.com home: http://www.cnblogs.com/csj0 ...
- UML类图关系大全【转】
UML类图关系大全 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...
- Swing中支持自动换行的WrapLayout
http://www.cnblogs.com/TLightSky/p/3482454.html ———————————————————————————————————————————————————— ...
- Cisco VTP中继协议配置
VTP协议: VLAN中继协议,VTP,VLAN TRUNKING PROTOCOL,是CISCO专用协议,大多数交换机都支持该协议.VTP负责在VTP域内同步VLAN信息, 这样就不必在每个交换上配 ...
- RedHat Linux7.3 使用yum安装时报错,改用CentOS yum源
在使用redhat linux的yum来安装或者更新软件的时候会有如下提示: [root@node1 home]# yum install package_name Loaded plugins: p ...
- Scala学习笔记(二):object、伴生对象和基本类
object object 是只有一个实例的类.它的定义与Java中的class类似,如: // 单例对象 object AppEntry { def main(args: Array[String] ...