论坛首页 AJAX版 EXT

一个grid提交的问题

浏览 355 次
该帖已经被评为隐藏帖
作者 正文
最后更新时间:2008-04-03
现在遇到一个棘手的问题
grid中的数据如何提交给后台?能否像form那样提交给后台?
我现在的做法是在前台将grid中的数据提取生成一个字符串,然后将字符串附在url后边提交给后台,这样如果grid中数据很多,字符串就很长,可是url负载不了这么长的字符串,无法提交。
请赐教,最好能提供代码示例
不胜感激
   
最后更新时间:2008-04-03
我的做法是将grid中的数据通过客户端脚本取出来,然后将其保存在xml中.
然后利用ajax技术将数据以xml格式发送到服务器端.
在服务器端接受xml并解析xml,还原数据就可以了.
不知道这样对你是否有帮助
   
0 请登录后投票
最后更新时间:2008-04-03
demo.js
-------------------------------------------------------------------

function AddAcountant()
{
var Xml="<info>";
var OtherInfo="";
var note="note=";
var table=document.getElementById("table1");
var rowCount=table.rows.length;
var txt_zhaiyao;//摘要
var txt_kemuName;//科目名字
var txt_kemuCode;//科目编号
var txt_jie;//借方
var txt_dai;//贷方
var jie_count=CountMoney(2);//借方统计
var dai_count=CountMoney(3);//贷方统计

var txt_fujian=document.getElementById("fujian").value;
var txt_zhidan=document.getElementById("zhidan").value;
var txt_zhuguan=document.getElementById("zhuguan").value;
var txt_chuna=document.getElementById("chuna").value;
var txt_shengxiao=document.getElementById("shengxiao").value;
var txt_beizhu=document.getElementById("beizhu").value;

//检查用户输入数据的合法性

if(jie_count==dai_count)
{   
  //循环获取表格信息,并保存为xml格式的数据
  for(var j=1;j<rowCount;j++)
  {
   txt_zhaiyao=table.rows[j].cells[0].childNodes[0].value;
   txt_kemuName=table.rows[j].cells[1].childNodes[0].value;//显示给用户看的
   txt_kemuCode=table.rows[j].cells[1].childNodes[1].value;//程序要取的值,保存在隐藏域
   txt_jie=table.rows[j].cells[2].childNodes[0].value;
   txt_dai=table.rows[j].cells[3].childNodes[0].value;
  
   if(txt_zhaiyao!="" && txt_kemuName!="" && txt_jie!="" || txt_zhaiyao!="" && txt_kemuName!="" && txt_dai!="")
   {
    Xml+="<row>"+"<zhaiyao>"+txt_zhaiyao+"</zhaiyao>"+"<kemuName>"+txt_kemuName+"</kemuName>"+"<kemuCode>"+txt_kemuCode+"</kemuCode>"+"<jie>"+txt_jie+"</jie>"+"<dai>"+txt_dai+"</dai>"+"</row>";
   }
   else if(txt_zhaiyao=="" && txt_kemuName=="" && txt_jie=="" && txt_dai=="")
   {
   
   }
   else
   {
    alert("凭证填写有误,请检查。");
    return;
   }
  }
}
else
{
  alert("借贷双方总金额不等。");
  return;
}

Xml+="</info>"
//将表格以外的信息保存在变量,并在最后附加在Url地址后面
OtherInfo="fujian="+txt_fujian+"&zhidan="+txt_zhidan+"&zhuguan="+txt_zhuguan+"&chuna="+txt_chuna+"&shengxiao="+txt_shengxiao+"&beizhu="+txt_beizhu;

//调用Ajax
GetData(Xml,OtherInfo);
}

//Ajax方法开始
var request;
function GetData(Xml,OtherInfo)
{
    if(window.ActiveXObject)
    {
        request=new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHTTPRequest)
    {
        request=new XMLHTTPRequest();
    }
    var url="SaveData.aspx?"+OtherInfo;
    request.open("POST",url,true);
    request.;
    request.setRequestHeader( "Content-type","application/x-www-form-urlencoded");
    request.send(Xml);
}
function Search()
{
    if(request.readyState==4)
    {
        if(request.status==200)
        {
            var Info=request.responseText;
            alert(Info);
        }
    }
}
   
0 请登录后投票
最后更新时间:2008-04-04
将grid中修改过的记录组装成一个json串,提交后在服务器端用json类库(http://www.json.org/)处理这个串就可以了,具体参考:
http://blog.csdn.net/xujiaqiang/archive/2007/07/03/1677366.aspx
   
0 请登录后投票
论坛首页 AJAX版 EXT

跳转论坛:
JavaEye推荐