ASP.NET+ashx+jQuery动态添加删除表格
aspx:
<script src="../script/jquery-1.4.4.min.js" type="text/javascript" language="javascript"></script>
<script language="javascript" type="text/javascript">
var proID = <%=id %>;
var flag = 'True'; $(function(){
readStage();
}); function readStage(){
$.get(
'readstage.ashx?ajax=true&random=' + Math.random(),{'proID':proID},
function(result){
// var result = [
// {"StageName":"Brett","ProName":"McLaughlin","ID":"1"},
// {"StageName":"Jason","ProName":"Hunter","ID":"2"},
// {"StageName":"Elliotte","ProName":"Harold","ID":"3"}
// ];
addnewRow(eval(result));
}
);
} function addnewRow(values){
clearRow();
if(values.length == ){
var newTr = stageTable.insertRow();
var newTd1 = newTr.insertCell();
newTd1.setAttribute("colSpan",);
newTd1.innerHTML = '暂无数据记录...';
} if(flag == 'True'){
for(var i = ; i < values.length; i++){
//新行
var newTr = stageTable.insertRow(i+);
//序号
var newTd1 = newTr.insertCell();
newTd1.innerHTML = i + ;
//阶段名称
var newTd2 = newTr.insertCell();
newTd2.innerHTML = '<label id=' + values[i].StageName + ' type="text" alt="' + values[i].StageName + '" >' + values[i].StageName + '</label>';
//所属项目
var newTd3 = newTr.insertCell();
newTd3.innerHTML = values[i].ProName;
//修改
var newTd4 = newTr.insertCell();
newTd4.innerHTML = "<a href='#' id='edit'" + values[i].ID + "' onclick=\"editStage('" + values[i].ID + "','" + values[i].StageName + "')\">修改</a>";
//删除
var newTd5 = newTr.insertCell();
newTd5.innerHTML = "<a href='#' id='del'" + values[i].ID + "' onclick=\"delStage('" + values[i].ID + "','" + values[i].StageName + "','Del')\">删除</a>";
}
}else{
for(var i = ; i < values.length; i++){
//新行
var newTr = stageTable.insertRow(i+);
//序号
var newTd1 = newTr.insertCell();
newTd1.innerHTML = i + ;
//阶段名称
var newTd2 = newTr.insertCell();
newTd2.innerHTML = '<label id=' + values[i].StageName + ' type="text" alt="' + values[i].StageName + '" >' + values[i].StageName + '</label>';
//所属项目
var newTd3 = newTr.insertCell();
newTd3.innerHTML = values[i].ProName;
//修改
var newTd4 = newTr.insertCell();
newTd4.innerHTML = "<a href='#' id='edit'" + values[i].ID + "' disabled = 'true' onclick=\"editStage('" + values[i].ID + "','" + values[i].StageName + "')\">修改</a>";
//删除
var newTd5 = newTr.insertCell();
newTd5.innerHTML = "<a href='#' id='del'" + values[i].ID + "' disabled = 'true' onclick=\"delStage('" + values[i].ID + "','" + values[i].StageName + "','Del')\">删除</a>";
} //隐藏阶段操作条
document.getElementById('searchtitle').className = 'hidediv';
}
$('#stageTable').show();
//清空hidden
document.getElementById('hidStageID').value = ;
} //添加阶段
function addStage(operate){
var stageName = document.getElementById('txtStageName').value;
var id = document.getElementById('hidStageID').value;
if(stageName.length <= ){
alert('阶段名称不能为空!');
return;
}
$.get(
'savestage.ashx?ajax=true&random=' + Math.random(),{'proID':proID,'stageName':stageName,'ID':id,'operate':operate},
function(result){
if(result == 'S'){
alert('保存成功!');
readStage();
}
else if(result == 'E'){
alert('保存失败!');
}
else if(result == 'M')
{
alert('修改成功!');
readStage();
}
else
{
alert('修改失败!');
}
}
);
} //清除多余的行
function clearRow(){
var signFrame = document.getElementById("stageTable");
var rowscount = signFrame.rows.length;
//循环删除行,从最后一行往前删除
for(i=rowscount - ;i >; i--){
signFrame.deleteRow(i);
}
} //修改
function editStage(id,stagename){
document.getElementById('hidStageID').value = id;
document.getElementById('txtStageName').value = stagename;
} //删除
function delStage(id,stageName,operate){
if(confirm('确定要删除此信息?')){
$.get(
'delstage.ashx?ajax=true&random=' + Math.random(),{'proID':proID,'stageName':stageName,'ID':id,'operate':operate},
function(result){
if(result == 'S'){
alert('删除成功!');
readStage();
}else{
alert('删除失败!');
}
});
}
} function delMsg()
{
if(confirm('确定删除此项?'))
{
$.get("delproject.ashx?ajax=true&random="+Math.random(),{"proID":proID},
function(result){
if(result == 'S')
{
alert('删除成功!');
window.location="projectlist.aspx";
}
else
{
alert('删除失败!');
}
});
}
} </script> <div id="searchtitle">
<table width="66%" style="margin-top:10px" border="" cellpadding="" cellspacing="">
<tr>
<td width="23%">阶段名称:<asp:TextBox ID="txtStageName" runat="server" class="input"></asp:TextBox></td>
<td style="padding-left:10px" align="left"><input id="btnPost" type="button" value="保存" class="button" onclick="addStage('Add&Edit')"/></td>
</tr>
</table>
</div>
<asp:HiddenField ID="hidStageID" runat="server" />
<table border="" id="stageTable" class="infolist" style="width:65%; margin-left:0" cellpadding="" cellspacing="">
<thead>
<tr>
<th width="10%">序号</th>
<th width="25%">阶段名称</th>
<th>所属项目</th>
<th style="border-right:1px solid #999999;" colspan="" width="20%">操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
readstage.ashx:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
int projectID = Convert.ToInt32(context.Request["proID"]);
//PM.BLL.tb_Stage stagebll = new PM.BLL.tb_Stage();
//DataSet ds = stagebll.GetList(" ProjectID="+projectID);
//context.Response.Write(ds);
StringBuilder sb = new StringBuilder();
string sql = "select * from tb_Stage where ProjectID="+projectID;
DataSet ds = PM.DBUtility.DbHelperSQL.Query(sql);
sb.Append("[");
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
sb.Append("{");
string stagename = ds.Tables[].Rows[i]["StageName"].ToString();
sb.Append("\"StageName\":\"" + stagename + "\"");
sb.Append(",");
string proname = returnProName(ds.Tables[].Rows[i]["ProjectID"].ToString());
sb.Append("\"ProName\":\"" + proname + "\"");
sb.Append(",");
string id = ds.Tables[].Rows[i]["StageID"].ToString();
sb.Append("\"ID\":\"" + id + "\"");
sb.Append("}");
if (i != ds.Tables[].Rows.Count - )
{
sb.Append(",");
}
}
sb.Append("]");
context.Response.Write(sb);
} public string returnProName(string proid)
{
string str = new PM.BLL.tb_Project().GetModel(int.Parse(proid)).ProjectName;
return str;
}
savestage.ashx:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string stageName = context.Request["stageName"];
int projectId = Convert.ToInt32(context.Request["proID"]);
string operate = context.Request["operate"];
int id = Convert.ToInt32(context.Request["ID"]);
PM.Model.tb_Stage stagemod = new PM.Model.tb_Stage();
stagemod.StageName = stageName;
stagemod.ProjectID = projectId;
stagemod.StageID = id; PM.BLL.tb_Stage stagebll = new PM.BLL.tb_Stage();
if (id == )
{
int i = stagebll.Add(stagemod);
if (i > )
{
context.Response.Write("S");//保存成功
}
else
{
context.Response.Write("E");//保存失败
}
}
else
{
bool j = stagebll.Update(stagemod);
if (j == true)
{
context.Response.Write("M");//修改成功
}
else
{
context.Response.Write("ME");//修改失败
}
}
}
delstage.ashx:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
int stageId = Convert.ToInt32(context.Request["ID"]);
PM.BLL.tb_Stage stagebll = new PM.BLL.tb_Stage();
bool res = stagebll.Delete(stageId);
if (res == true)
{
context.Response.Write("S");
}
else
{
context.Response.Write("E");
}
}
ASP.NET+ashx+jQuery动态添加删除表格的更多相关文章
- Jquery动态添加/删除表格行和列
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jQuery动态添加删除CSS样式
jQuery框架提供了两个CSS样式操作方法,一个是追加样式addClass,一个是移除样式removeClass,下面通过一个小例子讲解用法. jQuery动态追加移除CSS样式 <!DOCT ...
- jQuery动态添加删除select项
// 添加 function col_add() { var selObj = $("#mySelect"); var value="value"; var t ...
- jquery动态添加删除div--事件绑定,对象克隆
我想做一个可以动态添加删除div的功能.中间遇到一个问题,最后在manong123.com开发文摘 版主的热心帮助下解答了(答案在最后) 使用到的jquery方法和思想就是:事件的绑定和销毁(unbi ...
- jQuery动态添加删除与添加表行代码
具体实现代码如下: table的HTML如下: 代码如下 复制代码 <input type="button" value="添加一行" />< ...
- jquery动态添加/删除 tr/td
<head runat="server"> <title></title> <!--easyui --> <link rel= ...
- Jquery动态添加 删除 操作实现
这是gridView为空数据时显示的表头 下面直接填代码: function Add() { //动态添加行 $("#gridCustomerView").append(" ...
- 编辑 Ext 表格(一)——— 动态添加删除行列
一.动态增删行 在 ext 表格中,动态添加行主要和表格绑定的 store 有关, 通过对 store 数据集进行添加或删除,就能实现表格行的动态添加删除. (1) 动态添加表格的行 gridS ...
- jquery 动态添加表格行
jquery 动态添加表格行 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <h ...
随机推荐
- 【BZOJ 1319】 Sgu261Discrete Rootsv (原根+BSGS+EXGCD)
1319: Sgu261Discrete Roots Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 389 Solved: 172 Descriptio ...
- Swift 中的静态方法继承
Base and Derived Classes: class BaseClass{ class func staticMethod(){ println("BaseClass.static ...
- [wikioi]传纸条
http://wikioi.com/problem/1169/ 棋盘型的动态规划,这道题可以看成是从左上角向右下角走两条不重合的路(除了开始和结尾).动态规划要想的是状态和阶段,状态是(x1,y1,x ...
- ANDROID_MARS学习笔记_S05_005_方向传感器
import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import ...
- 循环冗余校验(CRC)算法入门引导
目录 写给嵌入式程序员的循环冗余校验CRC算法入门引导 前言 从奇偶校验说起 累加和校验 初识 CRC 算法 CRC算法的编程实现 前言 CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式.在嵌 ...
- 替换SQL Server字段中的换行符,回车符
replace(string_expression , string_pattern , string_replacement) 第一个参数:要查找的字段. 第二个参数:要查找的字符. 第三个参数:要 ...
- Centos6.4 为用户添加sudo功能
sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...
- ARM学习笔记1——Arm寄存器与模式的关系
ARM微处理器上有37个32位的寄存器,其中有6个状态寄存器(一个CPSR,5个SPSR),其它31个为通用寄存器.在ARM的不同模式下,可以访问的物理寄存器是不同,如下图所示: 从图中可知,用户模式 ...
- numpy note_1
tile(A,reps) 通过重复 reps次数的A 创建一个数组 examples: >>> a = np.array([0, 1, 2]) >>> np.til ...
- “互联网+”引发IT人才招工荒-新华网安徽频道
"互联网+"引发IT人才招工荒-新华网安徽频道 "互联网+"引发IT人才招工荒