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的更多相关文章
随机推荐
- Sql2008中添加程序集(转)
一.示例演示 1.用C# 建立数据库 CRL 项目 public partial class MyClr{ [Microsoft.SqlServer.Server.SqlFunction] ...
- 使用Docker-Docker for Web Developers(2)
1. 使用镜像 1.1 在Docker Hub上查找镜像 我们查找一下之前博客里面,推送到Docker Hub里面的bage88/docker-demo,能看到有2个仓库,第一个就是我们上次上传的镜像 ...
- Asp.Net 隐藏手机号中间四位为*方法
需求:15088881234 > 150****1234 方法1: "; , ) + , ); 方法2: "; string p2= Regex.Replace(phone ...
- 安装polyglot出错
安装polyglot出错 错误 Complete output from command python setup.py egg_info: Traceback (most recent call l ...
- ④NuPlayer播放框架之Renderer源码分析
[时间:2016-11] [状态:Open] [关键词:android,nuplayer,开源播放器,播放框架,渲染器,render] 0 导读 之前我们分析了NuPlayer的实现代码,本文将重点聚 ...
- 重定向如何携带cookie
起因 最近在做微信开放平台,需要给第三方入住,而且入住方都有自己的二级域名.做过微信开发的人都知道,坑爹的是微信并不支持这种二级域名的方式,所以用一个域名专门来处理. 问题 然后由于采用了一个专门的域 ...
- 解剖 Elasticsearch 集群 - 之一
解剖 Elasticsearch 集群 - 之一 本篇文章是一系列涵盖 Elasticsearch 底层架构和原型示例的其中一篇.在本篇文章中,我们会讨论底层的存储模型以及 CRUD(创建.读取.更新 ...
- plsql常用方法-转
在SQLPLUS下,实现中-英字符集转换alter session set nls_language='AMERICAN';alter session set nls_language='SIMPLI ...
- laravel数据库配置
1.说明,查看laravel数据库配置 项目名/config/database.php 'default' => env('DB_CONNECTION', 'mysql') 2.数据开发 ...
- web java -- 连接池 -- 概述
1. 连接池的实现原理 1. 创建连接池 首先要创建一个静态的连接池.这里的“静态”是指池中的连接时在系统初始化时就分配好的,并且不能够随意关闭.Java 提供了很多容器类可用来构建连接池,例如Vec ...