一些特殊的开发记录

Code

2

 

Code
Code

 

 

Code

 

 

RegisterStartupScript和RegisterClientScriptBlock的用法

举例:

//调用show();方法
this.RegisterStartupScript("show","<script language='javascript'>show();</script>");

 

RegisterClientScriptBlock(key,script)

RegisterStartupScript(key,scrpt)

作用:从后台向前台写脚本,且都接受两个字符串作为输入。第二个参数 script 是要插入到页面中的客户端脚本,包括 script 的起始标记和终止标记。第一个参数 key 是插入的客户端脚本的唯一标识符。

区别:在于“何处”发送脚本块。在 Web 窗体的开始处(紧接着 form runat="server" 标识之后)发送脚本块。

Web 窗体的结尾处(在 /form 标识之前)发送脚本块。

使用方法:用于为响应客户端事件而执行的脚本代码。通过此方法发送的脚本块位于 Web 页面的开始处,因为这种方法不要求将脚本块置于所有 HTML 元素之后,它一般不使用文档内自定义的控件。

用于添加要在加载页面后运行的脚本块,通过这种方法添加的脚本块位于 Web 窗体的结尾处,因为必须在脚本运行前定义脚本要修改的 HTML 元素。也就是说,如果您要使用客户端脚本将焦点设置到文本框,必须确保文本框的 HTML 标记位于设置该文本框的焦点的脚本之前。

作者:Bober Song
出处:http://bober.cnblogs.com/
衣冠勤售: http://www.YiGuanShou.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2008-08-22 13:09 衣冠勤售 阅读(194) 评论(13)  编辑 收藏

 回复 引用   
#1楼 2008-10-13 10:42 bober[未注册用户]
在程序集中加入资源的方法:

1. 将文件包含在项目中

2. 选择该文件的属性,将“生成操作”属性设为“嵌入的资源”。

3. 注意此资源的名称前面会自动加上默认的命名空间,比如项目的默认命名空间为 com.myspace,此文件为 jQuery.js,如果此文件加入到项目的根目录,则资源名称为 com.myspace.jQuery.js。如果被加入到项目的子文件夹中,还有再加上子文件的名称,例如:如果加入到项目根目录下的 Scripts 子文件夹中,则资源的名称变为:com.myspace.Scripts.jQuery.js。

4. 为程序集标注包含资源的程序集,可以有两种方法:

a) 在 assembly.cs 中,增加一个标签

[assembly.WebResource[“资源名称”, “类型”]

b) 在项目的任何一个 cs 文件中,在命名空间之外增加

[assembly.WebResource[“资源名称”, “类型”]



5. 使用GetWebResourceUrl 可以得到基于 WebResource.axd 的访问路径。

 回复 引用 查看   
#2楼[楼主] 2008-10-15 08:54 大力bober      
获取 ASP.NET 网站路径
示例:输出asp.net 网站路径。
private void responseHtml()
...{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(string.Format("当前时间: {0}", Server.HtmlEncode(DateTime.Now.ToString())));
sb.Append("<br />");
sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.CurrentExecutionFilePath)));
sb.Append("<br />");
sb.Append(string.Format("获取当前应用程序的根目录路径: {0}", Server.HtmlEncode(Request.ApplicationPath)));
sb.Append("<br />");
sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.FilePath)));
sb.Append("<br />");
sb.Append(string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.Path)));
sb.Append("<br />");
sb.Append(string.Format("获取当前正在执行的应用程序的根目录的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
sb.Append("<br />");
sb.Append(string.Format("获取与请求的 URL 相对应的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
sb.Append("<br />");
Response.Write(sb.ToString());
}
}

输出:当前时间: 2007-08-30 11:03:49
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前应用程序的根目录路径: /aDirectory
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前正在执行的应用程序的根目录的物理文件系统路径: E:\Visual Studio 2005\
获取与请求的 URL 相对应的物理文件系统路径: E:\Visual Studio 2005\\aDirectory\

 回复 引用 查看   
#3楼[楼主] 2008-10-16 14:27 大力bober      
获取该页面的正确访问地址,当MainMaster.Master与页面不在同一级目录下时遇到的相对路径不正确问题
protected string Path = VirtualPathUtility.ToAbsolute("~/Dissertation/List.aspx");

 回复 引用 查看   
#4楼[楼主] 2008-11-11 22:53 大力bober      
JS http://www.scriptlover.com/upload/0807061307096147.html
http://www.ibm.com/developerworks/cn/web/wa-aj-rearrange/?S_TACT=105AGX52&S_CMP=tec-csdn

 回复 引用 查看   
#6楼[楼主] 2008-12-12 22:45 大力bober      
http://www.west-wind.com/WebLog/posts/10688.aspx

一个MVP写的关于JS在C#中执行的

 回复 引用 查看   
#7楼[楼主] 2009-02-04 11:24 大力bober      
js 对FCKeditor 进行是否为空验证
function checkAll()
{
var oEditor = FCKeditorAPI.GetInstance('content');
var checkContent = oEditor.GetXHTML();
if(checkContent == "")
{
alert("空哎!");
oEditor.Focus();
return false;
}
}

 回复 引用 查看   
#8楼[楼主] 2009-04-09 11:19 大力bober      
去掉HTML页面中的标签:

string str = System.IO.File.ReadAllText("aa.txt");
string pattern = @"<(.|\n)*?>";

string text = System.Text.RegularExpressions.Regex.Replace(str, pattern, string.Empty);

 回复 引用 查看   
#9楼[楼主] 2009-04-15 11:48 大力bober      
<asp:BoundField DataField="zh_time" DataFormatString="{0:d}" htmlEncode="false" ><ItemStyle Height="24px" Width="80px"/></asp:BoundField>

在绑定时按格式要求输出字符串,主要是htmlEncode="false"

 回复 引用 查看   
#10楼[楼主] 2009-05-06 10:57 大力bober      
MVC系列:
[一步一步MVC]第一回:使用ActionSelector控制Action的选择
http://www.cnblogs.com/anytao/archive/2009/04/22/anytao-mvc-01-actioninrole.html

 回复 引用 查看   
#11楼[楼主] 2009-07-13 18:21 大力bober      
asp.net Response.AddHeader的方法来下载

System.IO.FileInfo info = new System.IO.FileInfo(Server.Mappath("Data\") + "FileName.exe");

protected void Button3_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;

// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/octet-stream";

// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(info.Name, System.Text.Encoding.UTF8));

// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", info.Length.ToString());
//Response.AddHeader("Content-Transfer-Encoding", "binary");

// 指定返回的是一个不能被客户端读取的流,必须被下载
//Response.AddHeader("content-type", "application/x-msdownload");

// 指定返回的是一个不能被客户端读取的流,必须被下载
// Response.ContentType = "application/ms-excel";

// 把文件流发送到客户端
Response.WriteFile(info.FullName);
Response.Flush();
Response.End();
}

文件下载,指定默认名
Response.AddHeader("content-type","application/x-msdownload");
Response.AddHeader("Content-Disposition","attachment;filename=要下载的文件名.rar");

刷新页面
Response.AddHeader “REFRESH”, ”60;URL=newpath/newpage.asp”
这等同于客户机端<META>元素:
<META HTTP-EQUIV=”REFRESH”, “60;URL=newpath/newpage.asp”

页面转向
Response.Status = “302 Object Moved”
Response.Addheader “Location”, “newpath/newpage.asp”
这等同于使用Response.Redirect方法:
Response.Redirect “newpath/newpage.asp”

强制浏览器显示一个用户名/口令对话框
Response.Status= “401 Unauthorized”
Response.Addheader “WWW-Authenticate”, “BASIC”
强制浏览器显示一个用户名/口令对话框,然后使用BASIC验证把它们发送回服务器(将在本书后续部分看到验证方法)。

如何让网页不缓冲
Response.Expires = 0
Response.ExpiresAbsolute = Now() - 1
Response.Addheader "pragma","no-cache"
Response.Addheader "cache-control","private"
Response.CacheControl = "no-cache"

 回复 引用 查看   
#13楼[楼主] 2010-05-29 11:56 大力bober      
利用Cache,asp.net 简单实现定时执行任务
----------------

代码
private static CacheItemRemovedCallback OnCacheRemove = null;

protected void Application_Start(object sender, EventArgs e)
{
AddTask("DoStuff", 60);
}

private void AddTask(string name, int seconds)
{
OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
HttpRuntime.Cache.Insert(name, seconds, null,
DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
CacheItemPriority.NotRemovable, OnCacheRemove);
}

public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
// do stuff here if it matches our taskname, like WebRequest
// re-add our task so it recurs
AddTask(k, Convert.ToInt32(v));
}


作者:Bober Song
出处:http://bober.cnblogs.com/
衣冠勤售:http://www.YiGuanShou.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。