Home > Web Front-end > JS Tutorial > body text

xml paging ajax request data source dom result example code_javascript skills

WBOY
Release: 2016-05-16 18:59:12
Original
1003 people have browsed it

效果图如下:

解决思路:
1.单击[选择]时,根据当前选择(下拉框)的分类ID,使用ajax请求,取得数据源(服务端使用dataSet.getXml()输出,因为数据量不是很大,所以就偷懒了)
2.客户端使用xml数据岛分页显示(使用数据岛分页比较简单,不用写太多的代码)
3.搜索时,根据当前选择(下拉框)的分类ID,和搜索关键字,重新使用ajax请求(好像也可以使用xml的结果过滤,但为了方便,重新请求算了),跳到第2步显示
4.取数据时,单击某行时,使用onclick事件,把当前行的tr做为参数,使用dom操作就可以得到tr里的td的值
附:由于没考虑到其它细节的问题,所以代码有点乱,希望各位能多多指导,各位的批评就是我进步的最好的捷径.谢谢
贴出全部代码,希望能和大家相互交流一下
index.html 显示页面:









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 = "";
tableHead += "编号";
tableHead += "用户名";
tableHead += "密码";
tableHead += "";
//数据绑定字段名,修改DATAFLD里的的字段名
var dataFiled = "
";
dataFiled += "
";
dataFiled += "
";
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 = "
";
content += "
";
content += "
";
content += "
";
content += "" + xmlContent + "";
content += "
"
//----------------翻页操作-----------------------//
content += ""
content += "
"
content += " ";
content += " ";
content += " ";
content += "";
content += "
1"
content += "
"
//----------------数据源-----------------------//
content += "";
//----------------列名-----------------------//
content += tableHead;
content += "";
content += dataFiled;
content += "";
content += "
";
content += "
"
content += "
"
data.innerHTML = content;
GetPages();
}
//Get the total pages
function GetPages()
{
var rowCount = $(" data_souce").getElementsByTagName("Table"); //Get all table nodes and get the total number of records
$("pages").innerHTML = Math.ceil(rowCount.length / pageSize);
$( "compart").innerHTML = "/";
if(rowCount.length == 0)
{
$("resultxml").innerHTML = "Related data not found";
}
}
//Get the current page on the homepage
function firstPage()
{
$("page").innerHTML = 1;
}
//Up Get the current page when page
function previousPage()
{
if($("page").innerHTML != "1")
{
$("page").innerHTML = parseInt($("page").innerHTML) - 1;
}
}
//Get the current page when going to the next page
function nextPage()
{
if( $("page").innerHTML != $("pages").innerHTML)
{
$("page").innerHTML = parseInt($("page").innerHTML) 1;
}
}
//Get the current page at the last page
function lastPage()
{
$("page").innerHTML = $("pages").innerHTML;
}
//Page turning operation
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;
}
}
}
//Search for
function Search()
{
key = $("key").value;
if(key == "")
{
alert("Please enter the search keyword");
return;
}
RequestXML();
}
//Get the object based on ID
function $(id)
{
return document.getElementById(id );
}
//Hide selection
function hide()
{
$(divid).style.display ="none";
}
//Create XMLHttpRequest
function CreateXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if( window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
//Request
function RequestXML()
{
var url = RequestFile "?id=" id "&key=" key;
CreateXMLHttpRequest();
xmlHttp.open("get",url);
xmlHttp.onreadystatechange = GetXMLResult;
xmlHttp.send(null );
}
//Receive
function GetXMLResult()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200 )
{
xmlContent = xmlHttp.responseText;
ShowData();
}
}
else
{
$(divid).innerHTML = "Reading Get data";
}
}
getXml.aspx server data source
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("");
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();
}

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template