xml分页+ajax请求数据源+dom取结果实例代码
xml分页+ajax请求数据源+dom取结果实例代码
发布时间:2016-12-30 来源:查字典编辑
摘要:效果图如下:解决思路:1.单击[选择]时,根据当前选择(下拉框)的分类ID,使用ajax请求,取得数据源(服务端使用dataSet.getX...

效果图如下:

xml分页+ajax请求数据源+dom取结果实例代码1

解决思路:

1.单击[选择]时,根据当前选择(下拉框)的分类ID,使用ajax请求,取得数据源(服务端使用dataSet.getXml()输出,因为数据量不是很大,所以就偷懒了)

2.客户端使用xml数据岛分页显示(使用数据岛分页比较简单,不用写太多的代码)

3.搜索时,根据当前选择(下拉框)的分类ID,和搜索关键字,重新使用ajax请求(好像也可以使用xml的结果过滤,但为了方便,重新请求算了),跳到第2步显示

4.取数据时,单击某行时,使用onclick事件,把当前行的tr做为参数,使用dom操作就可以得到tr里的td的值

附:由于没考虑到其它细节的问题,所以代码有点乱,希望各位能多多指导,各位的批评就是我进步的最好的捷径.谢谢

贴出全部代码,希望能和大家相互交流一下

index.html 显示页面:

<select id="productID" onchange="changeID()" NAME="productID">

<option value="1" selected>1111</option>

<option value="2">2222</option>

<option value="3">3333</option>

</select><br>

<table>

<tr>

<td><input id="selectValue" type="text" size="40"></td><td><a href='#' onclick='show()'><img src='img/btnSelect.gif' /></a></td>

</tr>

</table>

<div id="selectData"></div>

<input id="abc" type="text" size="50%" />

data.js 所有操作js代码

var xmlHttp;

var xmlContent; //ajax请求后返回保存的数据

var key = "";

var id = "";

//---------------------样式设置------------------//

var divid = "selectData" //说明第4步

var txtValueID = "selectValue"; //说时第2步

var fieldNames = new Array(3); //单击某行取值是,每列值前添加一个该值列名

var isShowFieldNames = true; //取值时,是否要显示列名 true为显示,false不显示

fieldNames[0]="编号:";

fieldNames[1]="用户名:";

fieldNames[2]="密码:";

var pageSize = 10; //每页显示行数

var onmouseoverBG = "#DDFFEC"; //鼠标移上去该行的背景颜色

var onmouseoutBG = "#ffffff"; //鼠标离开后该行的背景颜色

//表头列名根据需要修改

var tableHead = "<thead>";

tableHead += "<th>编号</th>";

tableHead += "<th>用户名</th>";

tableHead += "<th>密码</th>";

tableHead += "</thead>";

//数据绑定字段名,修改DATAFLD里的的字段名

var dataFiled = "<td><div DATAFLD='F_id'></div></td>";

dataFiled += "<td><div DATAFLD='F_userName'></div></td>";

dataFiled += "<td><div DATAFLD='F_passWord'></div></td>";

var RequestFile = "getXml1.aspx"; //请求页面

//-------------------外部调用--------------------------//

//显示选择

//productID是下拉框ID,请根据需要修改

function show()

{

$(divid).style.display = ''

$(divid).style.position="absolute"

$(divid).style.backgroundColor="#FFFFFF"

key = "";

id = productID.options[productID.selectedIndex].value;

RequestXML();

}

//分类改变时隐藏

function changeID()

{

hide();

}

//---------------------内部方法,一般不用修改---------------------------//

//选择某行的值,显示到文本框

function getCurrentRowData(tr)

{

var tds = tr.getElementsByTagName("td") //得到所有列

var result="";

for(var i = 0; i < tds.length; i++)

{

if(isShowFieldNames){result += fieldNames[i]};

if(i != tds.length -1 )//是否是最后一列

{

result += tr.getElementsByTagName("div")[i].firstChild.nodeValue + ","; //得到第i列的值 + ","

}

else

{

result += tr.getElementsByTagName("div")[i].firstChild.nodeValue; //得到第i列的值

}

}

$(txtValueID).value = result;

hide();

}

//显示内容

function ShowData()

{

var data = $(divid);

var content = "<div id="main";>";

content += "<div id="searchMain">";

content += "<table><tr><td><input id="key" type="text" /></td><td><a href='#' onclick='Search()'><img src='img/btnSearch.gif' /></a></td><td><a href='#' onclick='hide()'><img src='img/btnCancel.gif' /></a></td></tr></table>";

content += "</div>";

content += "<xml id="data_souce">" + xmlContent + "</xml>";

content += "<div id='resultxml'>"

//----------------翻页操作-----------------------//

content += "<table CELLPADDING=0 CELLSPACING=0 width='100%'><tr><td>"

content += "<a href="#" onclick="GotoPage('first')"><img src='img/btnFirst.gif'/></a> ";

content += "<a href="#" onclick="GotoPage('previous')"><img src='img/btnPrevious.gif'/></a> ";

content += "<a href="#" onclick="GotoPage('next')"><img src='img/btnNext.gif'/></a> ";

content += "<a href="#" onclick="GotoPage('last')"><img src='img/btnLast.gif'/></a>";

content += "</td>"

content += "<td align='rigth'><span id='page'>1</span><span id='compart'></span><span id='pages'></span>"

content += "</td></tr></table>"

//----------------数据源-----------------------//

content += "<table width='300px' CELLPADDING=0 CELLSPACING=0 id="datas" DATASRC="#data_souce" DATAPAGESIZE=" + pageSize + ">";

//----------------列名-----------------------//

content += tableHead;

content += "<tr onmouseover="this.bgColor='" + onmouseoverBG + "'" onmouseout="this.bgColor='" + onmouseoutBG + "'" onclick="getCurrentRowData(this)">";

content += dataFiled;

content += "</tr>";

content += "</table>";

content += "</div>"

content += "</div>"

data.innerHTML = content;

GetPages();

}

//得到总页

function GetPages()

{

var rowCount = $("data_souce").getElementsByTagName("Table"); //得到所有table节点,得到总记录数

$("pages").innerHTML = Math.ceil(rowCount.length / pageSize);

$("compart").innerHTML = "/";

if(rowCount.length == 0)

{

$("resultxml").innerHTML = "找不到相关数据";

}

}

//首页时得到当前页

function firstPage()

{

$("page").innerHTML = 1;

}

//上页时得到当前页

function previousPage()

{

if($("page").innerHTML != "1")

{

$("page").innerHTML = parseInt($("page").innerHTML) - 1;

}

}

//下页时得到当前页

function nextPage()

{

if($("page").innerHTML != $("pages").innerHTML)

{

$("page").innerHTML = parseInt($("page").innerHTML) + 1;

}

}

//尾页时得到当前页

function lastPage()

{

$("page").innerHTML = $("pages").innerHTML;

}

//翻页操作

function GotoPage(page)

{

switch(page)

{

case "first":

{

datas.firstPage();

firstPage();

break;

}

case "previous":

{

datas.previousPage();

previousPage();

break;

}

case "next":

{

datas.nextPage();

nextPage();

break;

}

case "last":

{

datas.lastPage();

lastPage();

break;

}

}

}

//搜索

function Search()

{

key = $("key").value;

if(key == "")

{

alert("请输入搜索关键字");

return;

}

RequestXML();

}

//根据ID得到对象

function $(id)

{

return document.getElementById(id);

}

//隐藏选择

function hide()

{

$(divid).style.display ="none";

}

//创建XMLHttpRequest

function CreateXMLHttpRequest()

{

if(window.ActiveXObject)

{

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

else if(window.XMLHttpRequest)

{

xmlHttp = new XMLHttpRequest();

}

}

//请求

function RequestXML()

{

var url = RequestFile + "?id=" + id + "&key=" + key;

CreateXMLHttpRequest();

xmlHttp.open("get",url);

xmlHttp.onreadystatechange = GetXMLResult;

xmlHttp.send(null);

}

//接收

function GetXMLResult()

{

if(xmlHttp.readyState == 4)

{

if(xmlHttp.status == 200)

{

xmlContent = xmlHttp.responseText;

ShowData();

}

}

else

{

$(divid).innerHTML = "正在读取数据中";

}

}

getXml.aspx 服务端数据源

private void Page_Load(object sender, System.EventArgs e)

{

Response.Write(GetData());

Response.End();

}

private string GetData()

{

string id = Request.QueryString["id"];

string key = Request.QueryString["key"];

string sql = "select * from T_user where F_id = " + id;

if (key.Length > 0){sql += " and F_id like '%" + key + "%'or F_passWord like '%" + key + "%' or F_userName like '%" + key + "%'";}

StringBuilder sb = new StringBuilder();

sb.Append("<?xml version="1.0"?>");

SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=sa;database=WebTest");

conn.Open();

SqlDataAdapter da = new SqlDataAdapter(sql,conn);

DataSet ds = new DataSet();

da.Fill(ds);

conn.Close();

sb.Append(ds.GetXml());

return sb.ToString();

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类