posts - 4,  comments - 27,  trackbacks - 0
公告
  置顶随笔
posted @ 2006-10-13 14:55 安森 阅读(2437) 评论(24) 编辑
  2006年11月1日
以前的东东

今天,有网友问我这个问题,asp中,服务端JS如何遍历Request.ServerVariables?

说实话,以前的asp都使用vbs写的,从来没想过js怎么写,随即给出答案! 如下:

<%@ Language="Javascript" %>
<%
for(var i in Request.ServerVariables)
{
        Response.Write(Request.ServerVariables(i));
}
%>

运行后发现,并没有任何输出,奇怪! 呵呵!

随即看看vbs的写法,如下:

<TABLE>
<TR><TD>Server Variable</TD><TD>Value</TD></TR>
<% For Each name In Request.ServerVariables %>
<TR><TD> <%= name %> </TD><TD>  <%= Request.ServerVariables(name) %> </TD></TR>
<% Next %>

</TABLE>

看来没有什么问题,只得暂时作罢!

今天,查阅MSDN无意间发现了这个东西,Enumerator !

随即给出如下代码,

<%@ Language="JavaScript" %>
<%
 var s = new Enumerator(Request.ServerVariables);
 
 for(;!s.atEnd();s.moveNext())
 {
  var x = s.item();
  Response.Write(x + " = " + Request.ServerVariables(x) + "<br>");
 }
%>

问题解决!看来服务端的js语言规则与客户端不是完全一样! 呵呵!

posted @ 2006-11-01 10:08 安森 阅读(542) 评论(0) 编辑

很早期的东西

 1/*
 2 * Class Session
 3 * 在客户端多页面之间共享信息
 4 */

 5function Session()
 6{
 7    var SessionObj = null;
 8    this.init = function()
 9 {
10     SessionObj = document.createElement('input');
11  SessionObj.type = "hidden";
12  SessionObj.id = "Sessionid";
13  SessionObj.style.behavior = "url('#default#userData')" 
14        document.body.appendChild(SessionObj);
15 }

16   this.load = function(sessionName)
17 {
18     if (sessionName != null && sessionName != "")
19  {
20      SessionObj.load("s");
21   return SessionObj.getAttribute(sessionName);
22  }

23 }

24
25 this.save = function(objId,attribute,sessionName)
26 {
27      var obj = null;
28  if (document.getElementById(objId) != null) obj = document.getElementById(objId)
29  else return;
30     var value = obj[attribute];
31 
32        if (sessionName != null && sessionName != "")
33  {
34      SessionObj.setAttribute(sessionName,value)
35   SessionObj.save("s")
36     }

37 }

38
39 this.init(); 
40}

41var Session = new Session();
42
43
44//例子:
45
46在文本框中输入任意内容!!点击 [save] !!<br>
47然后刷新页面!!也可以删除文本框内容!!! 点击[load] <br><br>
48<input type="text" id="txt">
49<input type="button" id="btn" value="save" onclick="Session.save('txt','value','op');">
50<input type="button" id="btn1" onclick="alert(Session.load('op'));" value="load">
51
52<script>
53function Session()
54{
55    var SessionObj = null;
56    this.init = function()
57 {
58     SessionObj = document.createElement('input');
59  SessionObj.type = "hidden";
60  SessionObj.id = "Sessionid";
61  SessionObj.style.behavior = "url('#default#userData')" 
62        document.body.appendChild(SessionObj);
63 }

64   this.load = function(sessionName)
65 {
66     if (sessionName != null && sessionName != "")
67  {
68      SessionObj.load("s");
69   return SessionObj.getAttribute(sessionName);
70  }

71 }

72
73 this.save = function(objId,attribute,sessionName)
74 {
75      var obj = null;
76  if (document.getElementById(objId) != null) obj = document.getElementById(objId)
77  else return;
78     var value = obj[attribute];
79 
80        if (sessionName != null && sessionName != "")
81  {
82      SessionObj.setAttribute(sessionName,value)
83   SessionObj.save("s")
84     }

85 }

86
87 this.init(); 
88}

89var Session = new Session();
90</script>
91
posted @ 2006-11-01 09:54 安森 阅读(921) 评论(0) 编辑
  2006年10月31日
摘要: 感谢领导们大发慈悲,终于同意新项目采用.net 2.0来开发了!其实,私下和2.0约会也不是一次两次了,每次都收获颇丰、回味无穷!呵呵!今天有点时间,就拿出一些如君共享!关于配置文件的管理,网络上已经有很多的介绍,不过都是讲讲道理,简单实现一下。对于多数初学者而言,依然很难体会到新版本对配置文件的操作到底好在哪里,我刚刚写了一个实现,就拿出来给初学者作为参考!同时代码中如果存在问题,希望大家批评指...阅读全文
posted @ 2006-10-31 17:13 安森 阅读(416) 评论(2) 编辑
  2006年10月13日
目的:在DridView中的每一行显示任务进度条!
HttpHandler实现如下:

namespace THOA.Web.Utility
{
    
class HandlerTaskbar : IHttpHandler
    
{
    
IHttpHandler 成员

}

请注意回写代码!

编译为dll,在Web app中引用生成的dll,假设名称为THOA.Web.Utility.dll,在web.config文件添加

<httpHandlers>
        
<add verb="GET" path="Taskbar.aspx" type="THOA.Web.Utility.HandlerTaskbar,THOA.Web.Utility" />
    
</httpHandlers>

Web Form代码如下:
<asp:GridView ID="gvTask" runat="server">
        
<Columns>
            
<asp:TemplateField HeaderText="进度">
            
<HeaderStyle HorizontalAlign="center" Width="45px"/>
            
<ItemTemplate>
                
<asp:Image runat="server" ID="imgBar" />
            
</ItemTemplate>
            
</asp:TemplateField>
        
</Columns>
    
</asp:GridView>

Web Form cs文件代码:

void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
    Image imgBar 
= e.Row.FindControl("imgBar"as Image;
    
if (imgBar != null)
            imgBar.ImageUrl 
= "Taskbar.aspx?task_id=" + e.Row.Cells[0].Text;
}

到此处大功告成,看看实际效果


另外,建议将出现频率高的进度缓存,以提高速度!
posted @ 2006-10-13 14:55 安森 阅读(2437) 评论(24) 编辑
仅列出标题