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客户关系管理的定义是:企业为提高核心竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方式,向客户提供创新式 ...
随机推荐
- SSM 全局异常
转载: http://blog.csdn.net/m13321169565/article/details/7641978 废话不多,直接说重点. 一 创建异常拦截类 (这里将 webapi 和 ...
- 【刷题】BZOJ 3653 谈笑风生
Description 设T 为一棵有根树,我们做如下的定义: ? 设a和b为T 中的两个不同节点.如果a是b的祖先,那么称"a比b不知道 高明到哪里去了". ? 设a 和 b 为 ...
- 收藏:Win32消息机制
Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别: DOS程序主要使用顺序的,过程驱动的程序设计方法.顺序的,过程驱动的程序有一个 ...
- Python字符串,整型,浮点数相互转化
Python字符串,整型,浮点数相互转化 觉得有用的话,欢迎一起讨论相互学习~Follow Me int(str) 函数将符合整数的规范的字符串转换成int型 float(str) 函数将符合浮点数的 ...
- JAVA记录-Servlet RequestDispatcher请求转发
RequestDispatcher接口提供将请求转发送到另一个资源的功能,它可能是html,servlet或jsp等. 此接口也可用于包括另一资源的内容.它是servlet协作的一种方式. 在Requ ...
- bzoj千题计划268:bzoj3131: [Sdoi2013]淘金
http://www.lydsy.com/JudgeOnline/problem.php?id=3131 如果已知 s[i]=j 表示有j个<=n数的数码乘积=i 那么就会有 s[a1]*s[a ...
- 单字节编码&双字节编码
单字节编码(WINDOWS-1252.ISO-8859-1.UTF-8) 双字节编码(UTF-16) Windows 记事本默认会将文件保存为单字节的 ANSI(ASCII).如果您选择 " ...
- Liberty Mutual Property Inspection, Winner's Interview: Qingchen Wang
Liberty Mutual Property Inspection, Winner's Interview: Qingchen Wang The hugely popular Liberty Mut ...
- 在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA
在Ubuntu14.04 64bit上搭建单机Spark环境,IDE为Intelli IDEA 一. 环境 Ubuntu14.04 64位 JDK 1.8.0_73 scala-2.10. ...
- PHP中GET和POST区别
1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...