工作小结(六)--ajax统计方法异步调用
1.Default.aspx前台页面:
1
<div>2
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 3
DataSourceID="FSLObjectDataSource_TaskRecord" 4
onrowdatabound="GridView1_RowDataBound">5
<Columns>6
<asp:TemplateField ShowHeader="true" HeaderText="工作任务">7
<HeaderStyle Font-Bold="true" ForeColor="#1C568A" />8
<ItemStyle Width="45%" HorizontalAlign="Center" />9
<ItemTemplate>10
<%#DataBinder.Eval(Container.DataItem, "Title")%>11
</ItemTemplate>12
</asp:TemplateField>13
<asp:TemplateField ShowHeader="true" HeaderText="今天所有新增">14
<HeaderStyle Font-Bold="true" ForeColor="#1C568A" />15
<ItemStyle Width="15%" HorizontalAlign="Center" />16
<ItemTemplate>17
<asp:HyperLink ID="h1" runat="server">18
<%# DataBinder.Eval(Container.DataItem, "TodayAllAdd")%>19
</asp:HyperLink>20
</ItemTemplate>21
</asp:TemplateField>22
<asp:TemplateField ShowHeader="true" HeaderText="今天所有关闭">23
<HeaderStyle Font-Bold="true" ForeColor="#1C568A" />24
<ItemStyle Width="25%" HorizontalAlign="Center" />25
<ItemTemplate>26
<asp:HyperLink ID="h2" runat="server">27
<%# DataBinder.Eval(Container.DataItem, "TodayAllClose")%>28
</asp:HyperLink>29
</ItemTemplate>30
</asp:TemplateField>31
<asp:TemplateField ShowHeader="true" HeaderText="个人待处理">32
<HeaderStyle Font-Bold="true" ForeColor="#1C568A" />33
<ItemStyle Width="15%" HorizontalAlign="Center" />34
<ItemTemplate>35
<asp:HyperLink ID="h3" runat="server">36
<%# DataBinder.Eval(Container.DataItem, "WaitHandle")%>37
</asp:HyperLink>38
</ItemTemplate>39
</asp:TemplateField>40
</Columns>41
</asp:GridView>42
43
<asp:ObjectDataSource ID="FSLObjectDataSource_TaskRecord" runat="server" TypeName="Class1"44
SelectMethod="GetTaskRecordEmpty"></asp:ObjectDataSource> 45
<script>46
47

48
function newXMLHttpRequest()49

{ 50
var xmlhttp;51
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 52

{53
try 54

{55
xmlhttp = new XMLHttpRequest();56
} 57
catch (e) 58

{59
xmlhttp = false;60
}61
}62
else if(!xmlhttp && window.ActiveXObject )63

{ 64
try 65

{ 66
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); 67
}68
catch (e1)69

{ 70
try 71

{ 72
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 73
}74
catch (e2)75

{ 76
77
// 不能通过ActiveX创建XMLHttpRequest 78
} 79
} 80
} 81
return xmlhttp; 82
} 83

84
function AjaxDoPostBack() 85

{ 86
var myhttprequest = newXMLHttpRequest(); 87
myhttprequest.onreadystatechange= function ()88

{89
if(myhttprequest.readyState==4) 90

{ 91
if(myhttprequest.status==200) 92

{ 93
var text = myhttprequest.responseText; 94
SetUserSummaryValue(text);95
//alert(text); 96
} 97
}98
}; 99
myhttprequest.open("POST","GetUserInfo.aspx" ,false); 100
myhttprequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");101
myhttprequest.send(); 102
} 103
104
105

function GetUserSummary()
{106
AjaxDoPostBack() ;107
}108
109

function SetUserSummaryValue(result)
{110
var groups=result.split(";"); 111

for(var i=0;i<groups.length;i++)
{112
113
var items = groups[i].split(",");114
var ctlIndex = i+2;115

for(var j=0;j<items.length;j++)
{116
var itemIndex = j+1;117
var idString = "GridView1_ctl0" + ctlIndex + "_h" + itemIndex;118
var obj = document.getElementById(idString);119

if(obj!=null)
{120
obj.innerText = items[j];121
}122

else
{123
//alert(idString);124
}125
}126
}127
}128
129
GetUserSummary();130
131
</script> 132
</div>
2.后台页面:
1
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)2

{3
if (e.Row.RowType != DataControlRowType.DataRow) return;4

5
string url = "http://" + Request.Url.Host;6
if (e.Row.RowIndex == 0)7

{8
((HyperLink)e.Row.Controls[0].FindControl("h1")).NavigateUrl = url + "/Default2.aspx";9
//((HyperLink)e.Row.Controls[0].FindControl("h1")).NavigateUrl = url + "/bm/mtTroubleManagelist.aspx?step=6&parm=A";10
((HyperLink)e.Row.Controls[0].FindControl("h2")).NavigateUrl = url + "/bm/mtTroubleManagelist.aspx?step=6&parm=B";11
((HyperLink)e.Row.Controls[0].FindControl("h3")).NavigateUrl = url + "/bm/mtTroubleManagelist.aspx?step=3";12
}13
if (e.Row.RowIndex == 1)14

{15
((HyperLink)e.Row.Controls[0].FindControl("h1")).NavigateUrl = url + "/stm/stmAllTaskList.aspx?parm=A";16
((HyperLink)e.Row.Controls[0].FindControl("h2")).NavigateUrl = url + "/stm/stmAllTaskList.aspx?parm=B";17
((HyperLink)e.Row.Controls[0].FindControl("h3")).NavigateUrl = url + "/stm/stmTaskAssignToMeList.aspx";18
}19
if (e.Row.RowIndex == 2)20

{21
((HyperLink)e.Row.Controls[0].FindControl("h1")).NavigateUrl = url + "/sireq/SIAllReqRecord.aspx?parm=A";22
((HyperLink)e.Row.Controls[0].FindControl("h2")).NavigateUrl = url + "/sireq/SIAllReqRecord.aspx?parm=B";23
((HyperLink)e.Row.Controls[0].FindControl("h3")).NavigateUrl = url + "/sireq/MyPendingJobSView.aspx";24
}25
if (e.Row.RowIndex == 3)26

{27
((HyperLink)e.Row.Controls[0].FindControl("h1")).NavigateUrl = url + "/adm/admAllApplyList.aspx?parm=A";28
((HyperLink)e.Row.Controls[0].FindControl("h2")).NavigateUrl = url + "/adm/admAllApplyList.aspx?parm=B";29
((HyperLink)e.Row.Controls[0].FindControl("h3")).NavigateUrl = url + "/adm/admApplyWaitForApvList.aspx";30
}31
}
3.GetUserInfo.aspx的后台代码:
1
protected void Page_Load(object sender, EventArgs e)2

{3
Class1 cls = new Class1();4
string str_CallBack = cls.GetTaskRecord();5
Response.Clear();6
Response.Write(str_CallBack);7
Response.End();8
}4.Class1类:
1

/**//// <summary>2
/// 构造用户的工作信息,以字符串返回,在回调的时候刷新页面信息。3
/// 下面的数字,可以调用不同的统计方法4
/// </summary>5
/// <returns></returns>6
public string GetTaskRecord()7

{8
StringBuilder resultStringBuilder = new StringBuilder();9
resultStringBuilder.Append(0 + ",")10
.Append(0 + ",")11
.Append(4 + ";")12

13

14
.Append(1 + ",")15
.Append(0 + ",")16
.Append(3 + ";")17

18
.Append(5 + ",")19
.Append(7 + ",")20
.Append(10 + ";")21

22
.Append(0 + ",")23
.Append(0+ ",")24
.Append(9);25

26
return resultStringBuilder.ToString();27
}28

29

/**//// <summary>30
/// 构造空的DataSet用户工作信息,给首页绑定数据。31
/// </summary>32
/// <returns></returns>33
public DataSet GetTaskRecordEmpty()34

{35
DataSet dsa = new DataSet();36

37
DataTable tblRecord = new DataTable("Record");38
DataColumn dc = null;39
dc = tblRecord.Columns.Add("Title", Type.GetType("System.String"));40
dc = tblRecord.Columns.Add("TodayAllAdd", Type.GetType("System.String"));41
dc = tblRecord.Columns.Add("TodayAllClose", Type.GetType("System.String"));42
dc = tblRecord.Columns.Add("WaitHandle", Type.GetType("System.String"));43

44
DataRow newRow;45
newRow = tblRecord.NewRow();46
newRow["Title"] = "运维事件";47
newRow["TodayAllAdd"] = 0;48
newRow["TodayAllClose"] = 0;49
newRow["WaitHandle"] = 0;50
tblRecord.Rows.Add(newRow);51

52
newRow = tblRecord.NewRow();53
newRow["Title"] = "运维任务";54
newRow["TodayAllAdd"] = 0;55
newRow["TodayAllClose"] = 0;56
newRow["WaitHandle"] = 0;57
tblRecord.Rows.Add(newRow);58

59
newRow = tblRecord.NewRow();60
newRow["Title"] = "资源管理";61
newRow["TodayAllAdd"] = 0;62
newRow["TodayAllClose"] = 0;63
newRow["WaitHandle"] = 0;64
tblRecord.Rows.Add(newRow);65

66
newRow = tblRecord.NewRow();67
newRow["Title"] = "发布管理";68
newRow["TodayAllAdd"] = 0;69
newRow["TodayAllClose"] = 0;70
newRow["WaitHandle"] = 0;71
tblRecord.Rows.Add(newRow);72

73
dsa.Tables.Add(tblRecord);74
return dsa;75
}5.data.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2
<root>
3
<data>
4
<bb>这里是XML中的数据。</bb>
5
</data>
6
<a>
7
aa
8
</a>
9
</root>
10
<?xml version="1.0" encoding="UTF-8"?>2
<root>3
<data>4
<bb>这里是XML中的数据。</bb>5
</data>6
<a>7
aa8
</a>9
</root>10

这是一个简单的AJAX调用的实例。

浙公网安备 33010602011771号