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%;">
&nbsp;
</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. Socket网络编程--小小网盘程序(5)

    各位好呀!这一小节应该就是这个小小网盘程序的最后一小节了,这一节将实现最后的三个功能,即列出用户在服务器中的文件列表,还有删除用户在服务器中的文件,最后的可以共享文件给好友. 列出用户在服务器中的文件 ...

  2. 9-8-B树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第9章  查找 - B树 ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集 ...

  3. Android截图命令screencap与视频录制命令screenrecord

    Android截图命令screencap 查看帮助命令 bixiaopeng@bixiaopeng ~$ adb shell screencap -v screencap: invalid optio ...

  4. 省市区三级联动——思路、demo、示例

    说明(2017-12-13 11:03:58): 1. 这个功能应该是注册的时候非常.常用的了,不过现在都是微信登录,手机端自动获取位置什么的,可能就网站还用用吧! 2. 这个东西的难点在于统计各地省 ...

  5. [转]devm_gpiod_get_optional用法

    https://blog.csdn.net/kris_fei/article/details/78932904

  6. [开发笔记]-Jqplot图表初体验

    文章内容为初次使用Jqplot图表插件的测试代码,仅供参考. <html xmlns="http://www.w3.org/1999/xhtml"> <head& ...

  7. UML类图关系大全【转】

    UML类图关系大全 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...

  8. Windows 使用 Gogs 搭建 Git 服务器

    随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...

  9. CLOS网络架构与FATTREE胖树拓扑

    FatTree拓扑结构是由MIT的Fares等人在改进传统树形结构性能的基础上提出的,属于switch-only型拓扑. 整个拓扑网络分为三个层次:自上而下分别为边缘层(edge).汇聚层(aggre ...

  10. Scala学习笔记——函数和闭包

    1.本地函数 可以在一个方法内再次定义一个方法,这个方法就是外部方法的内部私有方法,省略了private关键字 2.头等函数 var increase = (x: Int) => x + 1 S ...