无为清净楼资源网 Design By www.qnjia.com
假设现在主表为公司表(公司ID,公司名称,公司类型,公司规模),从表为部门表(部门ID,公司ID,经理,联系电话),现在一个公司有四个部门,要在同一个页面上录入公司信息以及四个部门的信息,如何动态创建部门信息录入口,以及如何获取数据存储到数据库中,请看下面的代码。
页面HTML代码及js脚本
代码
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="WebApp._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function addRow()
{
var tbl = document.getElementById("tbl");
var rows = tbl.rows.length;
var tr = tbl.insertRow(rows);
var td;
for(var i=0;i<4;i++)
{
td = tr.insertCell(i);
if(i==3)
td.innerHTML = "<a id='a"+rows+"' href='#' onclick='delRow(this)'>删除</a>";
else
td.innerHTML = "<input id='txt"+rows+i+"' type='text' />";
}
}
function delRow(obj)
{
var tbl = document.getElementById("tbl");
tbl.deleteRow(obj.parentNode.parentNode.rowIndex);
}
function getPageData()
{
var companyName = document.getElementById("txtCompanyName");
var companySize = document.getElementById("txtCompanySize");
var companyType = document.getElementById("ddlCompanyType");
var tbl = document.getElementById("tbl");
var txt;
var datas = new Array(tbl.rows.length-1);
for(var i=1;i<tbl.rows.length;i++)
{
txt = tbl.rows[i].getElementsByTagName("input");
datas[i-1] = txt[0].value +","+ txt[1].value+","+ txt[2].value;
}
PageMethods.GetData(companyName.value,companySize.value,companyType.options[companyType.selectedIndex].value, datas, showResult);
}
function showResult(msg)
{
alert(msg);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<table>
<tr>
<td>
公司名称:</td>
<td>
<asp:TextBox ID="txtCompanyName" runat="server"></asp:TextBox></td>
<td>
公司规模:</td>
<td>
<asp:TextBox ID="txtCompanySize" runat="server"></asp:TextBox></td>
<td>
公司类型:</td>
<td>
<asp:DropDownList ID="ddlCompanyType" runat="server">
</asp:DropDownList></td>
</tr>
</table>
<input id="btnAddRow" type="button" value="新增一行" onclick="addRow();" />
<table id="tbl">
<tr>
<td>
部门</td>
<td>
电话</td>
<td>
经理</td>
<td>
</td>
</tr>
<tr>
<td>
<input id="txt10" type="text" /></td>
<td>
<input id="txt11" type="text" /></td>
<td>
<input id="txt12" type="text" /></td>
<td>
<a id="a1" href='#' onclick="delRow(this)">删除</a></td>
</tr>
</table>
<input id="btnOK" type="button" value="确定" onclick="getPageData();" />
<br />
</form>
</body>
</html>
后置代码
代码
复制代码 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Web.UI.HtmlControls;
namespace WebApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//绑定公司类型
ddlCompanyType.Items.Add(new ListItem("国营企业", "1"));
ddlCompanyType.Items.Add(new ListItem("民营企业", "2"));
ddlCompanyType.Items.Add(new ListItem("外资企业", "3"));
ddlCompanyType.SelectedValue = "1";
}
}
[System.Web.Services.WebMethod]
public static string GetData(string companyName, string companySize, string companyType, string[] depts)
{
StringBuilder buider = new StringBuilder();//显示一下提取到的数据
buider.AppendLine(string.Format("公司名称:{0}", companyName));
buider.AppendLine(string.Format("公司规模:{0}", companySize));
buider.AppendLine(string.Format("公司性质:{0}", companyType));
CompanyInfo info = new CompanyInfo(companyName, companySize, companyType);//将数据插入到公司实体对象中
List<DepartmentInfo> infos = new List<DepartmentInfo>();
DepartmentInfo info1 = null;
string[] temp;
for (int i = 0; i < depts.Length; i++)
{
temp = depts[i].Split(new char[] { ',' });
buider.AppendLine(string.Format("部门:{0},经理:{1},电话:{2}", temp[0], temp[1], temp[2]));
info1 = new DepartmentInfo();
info1.DeptName = temp[0];
info1.Mamanger = temp[1];
info1.Phone = temp[2];
infos.Add(info1);//将数据插入到部门实体对象List集合中
}
//数据提取出来插入到数据库就是很简单的事情了。
return buider.ToString();
}
}
public class CompanyInfo
{
private string _companyName;
private string _companySize;
private string _companyType;
public string CompanyType
{
get { return _companyType; }
set { _companyType = value; }
}
public string CompanyName
{
get { return _companyName; }
set { _companyName = value; }
}
public string CompanySize
{
get { return _companySize; }
set { _companySize = value; }
}
public CompanyInfo()
{ }
public CompanyInfo(string companyName,string companySize,string companyType)
{
this._companyName = companyName;
this._companySize = companySize;
this._companyType = companyType;
}
}
public class DepartmentInfo
{
private string _deptName;
private string _mamanger;
private string _phone;
public string Phone
{
get { return _phone; }
set { _phone = value; }
}
public string Mamanger
{
get { return _mamanger; }
set { _mamanger = value; }
}
public string DeptName
{
get { return _deptName; }
set { _deptName = value; }
}
public DepartmentInfo()
{
}
}
}
首先是用JS实现动态新增一行、删除指定行的操作,然后利用AJAX的PageMethod方式,调用后台代码实现数据提取,然后把数据装载到公司实体对象与部门实体对象集合中,提交到数据库(这部分没有去实现,不用多说了,大家都会)。其中需要注意几个方面
、必须在 ScriptManager 设置 EnablePageMethods="true",这样才能使用PageMethod方式
、在JS中调用的服务端函数必须加上[System.Web.Services.WebMethod]
其它的代码太简单,就不用一一说明。
页面HTML代码及js脚本
代码
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="WebApp._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function addRow()
{
var tbl = document.getElementById("tbl");
var rows = tbl.rows.length;
var tr = tbl.insertRow(rows);
var td;
for(var i=0;i<4;i++)
{
td = tr.insertCell(i);
if(i==3)
td.innerHTML = "<a id='a"+rows+"' href='#' onclick='delRow(this)'>删除</a>";
else
td.innerHTML = "<input id='txt"+rows+i+"' type='text' />";
}
}
function delRow(obj)
{
var tbl = document.getElementById("tbl");
tbl.deleteRow(obj.parentNode.parentNode.rowIndex);
}
function getPageData()
{
var companyName = document.getElementById("txtCompanyName");
var companySize = document.getElementById("txtCompanySize");
var companyType = document.getElementById("ddlCompanyType");
var tbl = document.getElementById("tbl");
var txt;
var datas = new Array(tbl.rows.length-1);
for(var i=1;i<tbl.rows.length;i++)
{
txt = tbl.rows[i].getElementsByTagName("input");
datas[i-1] = txt[0].value +","+ txt[1].value+","+ txt[2].value;
}
PageMethods.GetData(companyName.value,companySize.value,companyType.options[companyType.selectedIndex].value, datas, showResult);
}
function showResult(msg)
{
alert(msg);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<table>
<tr>
<td>
公司名称:</td>
<td>
<asp:TextBox ID="txtCompanyName" runat="server"></asp:TextBox></td>
<td>
公司规模:</td>
<td>
<asp:TextBox ID="txtCompanySize" runat="server"></asp:TextBox></td>
<td>
公司类型:</td>
<td>
<asp:DropDownList ID="ddlCompanyType" runat="server">
</asp:DropDownList></td>
</tr>
</table>
<input id="btnAddRow" type="button" value="新增一行" onclick="addRow();" />
<table id="tbl">
<tr>
<td>
部门</td>
<td>
电话</td>
<td>
经理</td>
<td>
</td>
</tr>
<tr>
<td>
<input id="txt10" type="text" /></td>
<td>
<input id="txt11" type="text" /></td>
<td>
<input id="txt12" type="text" /></td>
<td>
<a id="a1" href='#' onclick="delRow(this)">删除</a></td>
</tr>
</table>
<input id="btnOK" type="button" value="确定" onclick="getPageData();" />
<br />
</form>
</body>
</html>
后置代码
代码
复制代码 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Web.UI.HtmlControls;
namespace WebApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//绑定公司类型
ddlCompanyType.Items.Add(new ListItem("国营企业", "1"));
ddlCompanyType.Items.Add(new ListItem("民营企业", "2"));
ddlCompanyType.Items.Add(new ListItem("外资企业", "3"));
ddlCompanyType.SelectedValue = "1";
}
}
[System.Web.Services.WebMethod]
public static string GetData(string companyName, string companySize, string companyType, string[] depts)
{
StringBuilder buider = new StringBuilder();//显示一下提取到的数据
buider.AppendLine(string.Format("公司名称:{0}", companyName));
buider.AppendLine(string.Format("公司规模:{0}", companySize));
buider.AppendLine(string.Format("公司性质:{0}", companyType));
CompanyInfo info = new CompanyInfo(companyName, companySize, companyType);//将数据插入到公司实体对象中
List<DepartmentInfo> infos = new List<DepartmentInfo>();
DepartmentInfo info1 = null;
string[] temp;
for (int i = 0; i < depts.Length; i++)
{
temp = depts[i].Split(new char[] { ',' });
buider.AppendLine(string.Format("部门:{0},经理:{1},电话:{2}", temp[0], temp[1], temp[2]));
info1 = new DepartmentInfo();
info1.DeptName = temp[0];
info1.Mamanger = temp[1];
info1.Phone = temp[2];
infos.Add(info1);//将数据插入到部门实体对象List集合中
}
//数据提取出来插入到数据库就是很简单的事情了。
return buider.ToString();
}
}
public class CompanyInfo
{
private string _companyName;
private string _companySize;
private string _companyType;
public string CompanyType
{
get { return _companyType; }
set { _companyType = value; }
}
public string CompanyName
{
get { return _companyName; }
set { _companyName = value; }
}
public string CompanySize
{
get { return _companySize; }
set { _companySize = value; }
}
public CompanyInfo()
{ }
public CompanyInfo(string companyName,string companySize,string companyType)
{
this._companyName = companyName;
this._companySize = companySize;
this._companyType = companyType;
}
}
public class DepartmentInfo
{
private string _deptName;
private string _mamanger;
private string _phone;
public string Phone
{
get { return _phone; }
set { _phone = value; }
}
public string Mamanger
{
get { return _mamanger; }
set { _mamanger = value; }
}
public string DeptName
{
get { return _deptName; }
set { _deptName = value; }
}
public DepartmentInfo()
{
}
}
}
首先是用JS实现动态新增一行、删除指定行的操作,然后利用AJAX的PageMethod方式,调用后台代码实现数据提取,然后把数据装载到公司实体对象与部门实体对象集合中,提交到数据库(这部分没有去实现,不用多说了,大家都会)。其中需要注意几个方面
、必须在 ScriptManager 设置 EnablePageMethods="true",这样才能使用PageMethod方式
、在JS中调用的服务端函数必须加上[System.Web.Services.WebMethod]
其它的代码太简单,就不用一一说明。
标签:
asp.net,ajax
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月17日
2024年11月17日
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】