树形结构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客户关系渠管理添加和修改联系人(二十一)的更多相关文章

  1. ERP客户关系渠管理(二十)

    渠道的需求:

  2. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  3. MVC客户管理(添加、修改、查询、分页)

    ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页)   目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2 ...

  4. CRM(客户关系管理)

    CRM最初是由Gartner Group提出的. CRM定义:"客户关系管理(CRM),是代表增进赢利.收入和客户满意度而设计的,企业范围的商业战略." 我们可以看出,Gartne ...

  5. 如何选择合适的CRM客户关系管理软件?

    面对日益激烈的市场竞争,很多企业管理者不断通过各种途径和方式,试图寻找一个合适并行之有效的解决方案,以帮助他们解决企业管理难题,不断提高企业的业绩,获得持续的成功. 企业管理软件的出现填补了企业管理领 ...

  6. 医院管理者必须知道的医院客户关系管理(CRM)

    客户关系管理(customer relationship management,CRM)是在二战之后首先由美国IBM.道氏.通用等大型企业提出并运用的一种以有效销售为目的的市场营销思想,其理论基础就是 ...

  7. CRM客户关系管理系统 ——客户联系人添加(十五)

    需求描述: 1.业务员自己可以查看属于自己的客户信息 2.客服部经理可以查看查看所有客户信息 3.其他人员不得查看客户信息 效果截图:  

  8. CRM客户关系管理系统修改(十四)

    修改的流程:

  9. 智能化CRM客户关系管理系统介绍一

    智能化CRM客户关系管理系统介绍一 CRM客户关系管理的定义是:企业为提高核心竞争力,利用相应的信息技术以及互联网技术来协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方式,向客户提供创新式 ...

随机推荐

  1. WebApplication与WebSite区别

    1. WebApplication(Web应用程序)和WebSite(网站)的区别:WebSite是为了兼容从ASP转过来的开发人员的习惯而存在的,用起来简单,例如:不需要创建命名控件.C#代码修改以 ...

  2. 【设计模式】—— 模板方法Template

    前言:[模式总览]——————————by xingoo 模式意图 定义一个类的框架,当它有不同的类时,再具体实现. 比如,我们设计一个跨系统的客户端软件,Windows需要一套展现类,Linux需要 ...

  3. Tomcat源码解析-整体流程介绍

    一.架构 下面谈谈我对Tomcat架构的理解 总体架构: 1.面向组件架构 2.基于JMX 3.事件侦听 1)面向组件架构 tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成 ...

  4. POJ 3436 ACM Computer Factory (网络流,最大流)

    POJ 3436 ACM Computer Factory (网络流,最大流) Description As you know, all the computers used for ACM cont ...

  5. 【POJ1958】汉诺塔+

    题目大意:给定一个四个柱子的汉诺塔,N 个盘子,求最少多少步移动到另一个柱子上. 题解:\(f[n]=min(2*f[i]+d[n-i])\),其中 \(d[i]\) 为汉诺三塔最小移动次数.M 塔同 ...

  6. 监控IIS的运行状态

    IIS经常出现假死的情况,具体什么时候会出现假死,我就不说了,今天我要写的是如何监控IIS的状态. 程序的功能是:如果IIS是为运行的状态,就重启IIS,如果IIS的连接数达到了设置的连接数,也重启I ...

  7. eos源码剖析之controller

    controller::block_status,区块状态枚举类,包括: irreversible = 0,该区块已经被当前节点应用,并且被认为是不可逆的.validated = 1,这是由一个有效生 ...

  8. C# 基于MySQL的数据层基类(MySQLHelper)

    这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作. 1.将MySql.Data.dll引用到你的项目中 下载地址:MyS ...

  9. python 爬虫 scrapy1_官网教程

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  10. Hadoop生态圈-kafka事务控制以及性能测试

    Hadoop生态圈-kafka事务控制以及性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.