ERP客户关系渠管理添加和修改联系人(二十一)
树形结构treeview 前端代码:
<form id="form1" runat="server">
<div> <asp:TreeView ID="TreeView1" runat="server">
</asp:TreeView> </div>
</form>
后端代码:
public partial class ChannelList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CreateTreeVeiw();
} } DataSet ds;
DataTable dt; private void CreateTreeVeiw()
{ ds = SqlComm.GetDataByCondition("BioErpCrmManageChannel", "ChannelID,SuperiorChannel,ChannelName", "1=1"); dt = new DataTable();
dt = ds.Tables[0];
DataView dv = new DataView(dt, "SuperiorChannel=0 or SuperiorChannel=null", "ChannelID", DataViewRowState.CurrentRows);
//遍历父节点
foreach (DataRowView d in dv)
{
TreeNode n = new TreeNode(d["ChannelName"].ToString(), d["ChannelID"].ToString());
n.ImageToolTip = dt.TableName;
TreeView1.Nodes.Add(n);
n.Expanded = false;
//根据父节点筛选出对应的子节点
dv = new DataView(dt, "SuperiorChannel='" + d["ChannelID"] + "'", "ChannelID", DataViewRowState.CurrentRows);
if (dv.Count > 0)
{
CreateSubTreeView(n, dv); }
} } /// <summary>
/// 添加子项
/// </summary>
/// <param name="n"></param>
/// <param name="dv"></param>
private void CreateSubTreeView(TreeNode n, DataView dv)
{
foreach (DataRowView d in dv)
{
TreeNode cn = new TreeNode(d["ChannelName"].ToString(), d["ChannelID"].ToString());
n.ChildNodes.Add(cn);
DataView sdv = new DataView(dt, "SuperiorChannel='" + d["ChannelID"] + "'", "ChannelID", DataViewRowState.CurrentRows);
if (sdv.Count > 0)
{
CreateSubTreeView(cn, sdv);
} }
}
}
js代码:
function showChannel() {
var re = showModalDialog("../PersonList/ChannelList.aspx", "", "dialogWidth=350px;dialogHeight=400px");
}
前端加载页面:
<td>上级渠道</td><td><asp:TextBox ID="txtJuridicalPerson" runat="server"></asp:TextBox>
<input type="button" onclick="showChannel()" value="选择"/>
</td>
显示页面的界面前端代码:
<script type="text/javascript">
function ReturnValue(noteid) {
if (noteid != NaN || noteid != 0) {
window.returnValue = noteid;
window.close();
} else {
window.returnValue = 0;
window.close();
} }
</script>
js代码:
function showChannel() {
var re = showModalDialog("../../PersonList/ChannelList.aspx", "", "dialogWidth=350px;dialogHeight=400px");
txtSuperChannelID = document.getElementById("txtSuperChannelID")
if (re != null) { if (txtSuperChannelID != null) {
txtSuperChannelID.value = re;
} else {
txtSuperChannelID.value = "0";
}
} else {
txtSuperChannelID.value = "0";
}
}
效果:
动态添加行:(代码)
<style type="text/css">
.style1
{
height: 22px;
}
.style3
{
width: 352px;
}
.style4
{
width: 114px;
}
.style5
{
width: 92px;
} .linkmantable{ width:100%; border:solid 1px; border-collapse:collapse; }
.linkmantable td{ border:solid 1px ;}
.linkmantable input{ width:70px;}
</style>
<script type="text/javascript">
$(document).ready(function () {
var i = 0;
jQuery("#btnAddNew").click(function () {
i++;
tr = '';
tr = tr + ' <tr id="tr' + i + '">';
tr = tr + ' <td><input name="txtLinkMan1" MaxLength="10"></input></td>';
tr = tr + ' <td>';
tr = tr + ' <select name="ddlSex1" > <option Value="0">男</option> <option Value="1">女</option></select>';
tr = tr + ' </td>';
tr = tr + ' <td>';
tr = tr + ' <input name="txtBirthday1" onfocus="setday(this)" onclick="setday(this)" MaxLength="20"></input></td>';
tr = tr + ' <td><select name="ddlMainLink1"> <option Value="1">是</option> <option Value="0">否</option> </select></td>';
tr = tr + ' <td> <input name="txtOfficePhone" MaxLength="20" ></input></td>';
tr = tr + ' <td> <input name="txtMobile1" MaxLength="20" ></input></td>';
tr = tr + ' <td> <input name="txtEmail11" MaxLength="20"></input></td>';
tr = tr + ' <td> <input name="txtAddress1" MaxLength="50" ></input></td>';
tr = tr + ' <td> <input name="txtQQ1" MaxLength="15"></input></td>';
tr = tr + ' <td> <input name="txtRemark1" MaxLength="200"></input></td>';
tr = tr + ' </tr>'; $("#caption").before(tr); }); jQuery("#btnDelete").click(function () {
$("#tr" + i).remove();
i--;
}); }); </script>
控件代码:
<tr>
<td colspan="4">
<table class="linkmantable">
<tr>
<td>联系人</td>
<td>性别</td>
<td>生日</td>
<td>是否主联系人</td>
<td>办公室电话</td>
<td>个人手机</td>
<td>Email</td>
<td>地址</td>
<td>QQ</td>
<td>备注</td>
</tr>
<tr>
<td><input name="txtLinkMan1" MaxLength="10"></input></td>
<td>
<select name="ddlSex1" >
<option Value="0">男</option>
<option Value="1">女</option>
</select>
</td>
<td>
<input name="txtBirthday1" onfocus="setday(this)" onclick="setday(this)" MaxLength="20"></input></td>
<td><select name="ddlMainLink1">
<option Value="1">是</option>
<option Value="0">否</option>
</select></td>
<td> <input name="txtOfficePhone" MaxLength="20" ></input></td>
<td> <input name="txtMobile1" MaxLength="20" ></input></td>
<td> <input name="txtEmail11" MaxLength="20"></input></td>
<td> <input name="txtAddress1" MaxLength="50" ></input></td>
<td> <input name="txtQQ1" MaxLength="15"></input></td>
<td> <input name="txtRemark1" MaxLength="200"></input></td>
</tr>
<tr id="caption">
<td colspan="10" style="text-align: right; padding-right: 20px;">
<input type="button" value="删除一行" id="btnDelete" /><input type="button" value="添加一行" id="btnAddNew" />
</td>
</tr> </table> </td>
</tr>
ERP客户关系渠管理添加和修改联系人(二十一)的更多相关文章
- ERP客户关系渠管理(二十)
渠道的需求:
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- MVC客户管理(添加、修改、查询、分页)
ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...
- CRM(客户关系管理)
CRM最初是由Gartner Group提出的. CRM定义:"客户关系管理(CRM),是代表增进赢利.收入和客户满意度而设计的,企业范围的商业战略." 我们可以看出,Gartne ...
- 如何选择合适的CRM客户关系管理软件?
面对日益激烈的市场竞争,很多企业管理者不断通过各种途径和方式,试图寻找一个合适并行之有效的解决方案,以帮助他们解决企业管理难题,不断提高企业的业绩,获得持续的成功. 企业管理软件的出现填补了企业管理领 ...
- 医院管理者必须知道的医院客户关系管理(CRM)
客户关系管理(customer relationship management,CRM)是在二战之后首先由美国IBM.道氏.通用等大型企业提出并运用的一种以有效销售为目的的市场营销思想,其理论基础就是 ...
- CRM客户关系管理系统 ——客户联系人添加(十五)
需求描述: 1.业务员自己可以查看属于自己的客户信息 2.客服部经理可以查看查看所有客户信息 3.其他人员不得查看客户信息 效果截图:
- CRM客户关系管理系统修改(十四)
修改的流程:
- 智能化CRM客户关系管理系统介绍一
智能化CRM客户关系管理系统介绍一 CRM客户关系管理的定义是:企业为提高核心竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方式,向客户提供创新式 ...
随机推荐
- jQuery3 slim版本和普通版本区别,如何选择?
区别概述: slim即简化版,比普通版本缺少Ajax和特效模块模块. 官方发布地址:http://blog.jquery.com/2017/03/20/jquery-3-2-1-now-availab ...
- in packet sniffer
in packet sniffer 来源 https://kb.fortinet.com/kb/microsites/search.do?cmd=displayKC&docType=kc&am ...
- BZOJ 2039 [2009国家集训队]employ人员雇佣 网络流
链接 BZOJ 2039 题解 这题建图好神,自己瞎搞了半天,最后不得不求教了企鹅学长的博客,,,,发现建图太神了!! s向每个人连sum(e[i][x]) 的边,每个人向T连a[i]的边.两两人之间 ...
- 【枚举Day1】20170529-2枚举算法专题练习 题目
20170529-2枚举算法专题练习 题解: http://www.cnblogs.com/ljc20020730/p/6918360.html 青岛二中日期 序号 题目名称 输入文件名 输出文件名 ...
- 解题:APIO 2018 铁人两项
题面 建立圆方树,考虑所有路径,发现路径上原来的点双(现在的方点)里的点都可以做中间点.但是路径上被方点夹着的圆点被计重了,要扣掉:枚举的两个端点也被算进去了,要扣掉.所以直接将方点权值设为点双大小, ...
- CODE FESTIVAL 2017 qual A 题解
补一发A的题解. A - Snuke's favorite YAKINIKU 题意: 输入字符串S,如果以YAKI开头输出Yes,否则输出No. #include<bits/stdc++.h&g ...
- HDU 6156 数位dp
Palindrome Function Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 256000/256000 K (Java/Ot ...
- 多线程-----java基础知识总结
一,关于线程的总体流程,如下图所示: 二,线程的常用方法:
- vue+webpack开发(一)
一开始接触这个vue+webpack的时候,实在是摸不着头脑,根本无从下手. 但是经过这两天的研究,其实你会发现vue其实并不难,难度都在webpack你对webpack的理解. webpack顾名思 ...
- [整理]Win下好用的Markdown工具
用过haroopad,MarkPad,Sublime + markdown插件,前2款勉强能用,都处于继续开发中,haroopad支持的语法相对较少,提示也不明显,MarkPad还是有不少bug. 后 ...