博文
ASP.NET提供文件下载函数(支持大文件、续传、速度限制、资源占用小)(2006-05-18 17:29:00)
摘要:// 输出硬盘文件,提供下载
// 输入参数 _Request: Page.Request对象, _Response: Page.Response对象, _fileName: 下载文件名, _fullPath: 带文件名下载路径, _speed 每秒允许下载的字节数
// 返回是否成功
public static bool ResponseFile(HttpRequest _Request,HttpResponse _Response,string _fileName,string _fullPath, long _speed)
{
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try
{
_Response.AddHeader("Accept-Ranges", "bytes");
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0;
int pack = 10240; //10K bytes
C#写的UBB代码类(2006-05-11 17:37:00)
摘要:参考了一些文章,整理了一下,大家可以直接拿去用吧,其实自从有了FreeTextBox这样的东东出现,UBB已经渐渐淡出江湖了。 using System; using System.Text; using System.Text.RegularExpressions; namespace Test.Com { /// /// 功能:UBB代码 /// 作者:Rexsp /// 日期:2004-4-6 /// public class UBB { #region 构造函数 public UBB() { // // TODO: 在此处添加构造函数逻辑 // } #endregion #region 公共静态方法 /// /// UBB代码处理函数 /// /// 输入字符串 /// 输出字符串 public static string UBBToHTML(string sDetail) { Regex r; Match m; #region 处理空格 sDetail = sDetail.Replace(" "," "); #endregion #region html标记符 sDetail = sDetail.Replace("<","<"); sDetail = sDetail.Replace(">",">"); #endregion #region 处[b][/b]标记 r = new Regex(@"(\[b\])([ \S\t]*?)(\[\/b\])",RegexOptions.IgnoreCase); for (m = r.Match(sDetail); m.Success; m = m.NextMatch()) { sDetail = sDetail.Replace(m.Groups[0].ToString(),"" + m.Groups[2].ToString() + ""); } #endregion #region 处[i][/i]标记 r = new Regex(@"(\[i\])([ \S\t]*?)(\[\/i\])",RegexOptions.IgnoreCase); for (m = r.Match(sDetail); m.Success; m = m.NextMatch()) { sDetail = sD......
ASP.NET中设计带事件定制控件(2006-05-11 17:29:00)
摘要: 在试图为客户开发一个在网络上运行的应用程序时,我发现有关正确使用.NET Web控件的讨论非常少。下面是使用.NET Web控件的常见问题: 1、如何使这些控件间相互通讯? 2、如何使这些控件保持状态? 3、如何将多个控件有效地联接在一个网页上? 我是一名ASP开发人员,发现转向ASP.NET并非是件轻而易举的事。我最初的想法是通过Session对象或使用查询语句保持状态,但发现这二种方法都太邋遢,而且,当试图对网页上的所有Web控件进行同步时就会出现问题。我在偶然间发现了一篇有关在Web控件中创建事件的文章,但在实践中仍然吃足了苦头,因此,我认为提供一个有关正确地创建Web控件并同时创建定制事件的实例是非常重要的。 讨论将按照下面的顺序进行: 1、创建一个Web控件 2、创建控件的定制事件和事件参数 3、在网页上正确地使用Web控件 在讨论期间,我还会向读者提供一些小技巧,使读者能够更精确和快速地开发应用程序。 我们在这里创建的Web控件是一个定制的下拉选择框,它基于标准版本的SQL Server或MSDE的pubs数据库中的stores表。在开发中我们使用了Visual Studio .NET 2003开发工具和C#编程语言。 在创建Pubs Web项目后,第一个任务(至少对于我是如此)是将WebForm1.aspx文件改名为Default.aspx,并修改类,使之与名字相符。然后是在IDE环境中创建一个文件夹结构,方便对象的查找。 (图1) 我创建了Controls目录存储所有创建的控件,以更方便地访问它们。根据创建控件时的粒度,我们可以进一步地细分Controls目录。 我将把控件命名为StoreSelector.ascx。第一步是在表单上添加DropDownList控件。 (图1) 我创建了Controls目录存储所有创建的控件,以更方便地访问它们。根据创建控件时的粒度,我们可以进一步地细分Controls目录。 我将把控件命名为StoreSelector.ascx。第一步是在表单上添加DropDownList控件。 (图2) 现在就该为该控件“布线”了。创建一个Dataset类的对象: #code private DataSet data; #end code 创建向下拉列表......
打包的时候 把数据库也打到里边(2006-05-11 17:12:00)
摘要:重点介绍如何在安装包中自动为客户创建数据库 步骤: 1、添加一个新项目->选择类库模板->命名为DBCustomAction 2、单击项目右键->添加新项->选择安装程序类(命名为DBCustomAction.cs) 3、在服务器资源管理器中添加->连接到数据库->指定用户密码(选择允许保存密码)->数据库选择master 4、切换到DBCustomAction.cs的视图状态->将服务器资源管理器数据库连接中的master.dbo拖动到designer中 5、添加一个新项sql.txt(注意要使用小写),输入下列sql代码 CREATE TABLE [dbo].[MK_Employees] ( [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Rsvp] [int] NULL , [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]; ALTER TABLE [dbo].[MK_Employees] WITH NOCHECK ADD CONSTRAINT [PK_MK_Employees] PRIMARY KEY CLUSTERED ( [Name] ) ON [PRIMARY]; (P.S:也可以直接用SqlServer导出) 6、在sql.txt的右键属性中->生成操作->嵌入的资源 7、将DBCustomAction.cs切换到代码视图,添加下列代码 private string GetSql(string Name) { try { Assembly Asm = Assembly.GetExecutingAssembly(); Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name); StreamReader reader = new StreamReader(strm); return reader.ReadToEnd(); } catch (Exception ex) { Console.Write(......
动手扩充FreeTextBox的功能(2006-05-11 15:42:00)
摘要:摘要:最近一个项目要求可以在发表文章的时候能发布电影,当然不可能叫用户去写HTML代码了,于是决定扩充FreeTextBox的功能,即为它增加一个工具栏按钮,实现发布在线电影的功能。 -------------------------------------------------------------------------------- FreeTextBox是.Net环境下广为流行的RichText编辑器,CSDN的blog在发表文章时就是使用的它。 最近一个项目要求可以在发表文章的时候能发布电影,当然不可能叫用户去写HTML代码了, 于是决定扩充FreeTextBox的功能,即为它增加一个工具栏按钮,实现发布在线电影的功能。 没有看相关的文章,直接打开FreeTextBox的源代码工程,发现工程结构组织还是比较好, 源代码也有注释,注意到ToolbarControls目录下面有ToolbarItem.cs、ToolbarItems.cs和 ToolbarButton.cs ,肯定是在这里了。粗看了一下代码, 发现在ToolbarItems.cs有很多静态属性,分别返回很多ToolbarButton。 其中有很熟悉的: /// /// Returns a ToolbarButton with InsertImageFromGallery JavaScript functions builtin /// public static ToolbarButton InsertImageFromGallery { get { ToolbarButton button = new ToolbarButton("插入图片(来自图片库)","insertimagefromgallery","FTB_InsertImageFromGallery_CLIENTID"); button.ScriptBlock = @"
function FTB_InsertImageFromGallery_CLIENTID(editor,htmlmode) {
if (htmlmode) return;
editor.focus();
obj = FTB_GetRangeReference(editor);
if (obj.tagName == ’IMG’) {
......
app.config修改操作(2006-05-11 15:34:00)
摘要:using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Reflection;
using System.IO;
namespace SMRouterSender
{
public class ClassConfigurationSettings
{
/// <summary>
/// 修改配置文件(数据库连接字符串)
/// </summary>
/// <param name="connString"></param>
public static void UpdateConfig( string SMSenderDBIP, string SMSenderSaUserName, string SMSenderSaPassword)
{
try
{
str......
Asp.Net获取本地计算机和其他计算机的MAC值的方法(2006-05-11 15:33:00)
摘要:Public Function ValueSepR(ByVal RawString As String, ByVal SepChar As String) As String
If InStr(1, RawString, SepChar) <> 0 Then
ValueSepR = Microsoft.VisualBasic.Right(RawString,Len(RawString) - InStr(1, RawString, SepChar))
Else
ValueSepR = RawString
End If
End Function
Public Function GetMac(ByVal IP As String) As String
Try
Dim dirResults As String
&nb......
全选与取消(2006-04-01 09:39:00)
摘要:<script type="text/javascript">
<!--
function CheckAll(flag)
{
f1=document.form3;
for (var i=0;i<f1.elements.length;i++)
{
var e = f1.elements[i];
if (flag==1)
e.checked = true;
else if (flag==0)
e.checked = false;
}
}
//-->
</script>......
客户端实现级联全选(2006-04-01 09:30:00)
摘要:<script language="JavaScript">
<!--
function display( dis, hid ){
document.getElementById(hid).style.display="none";
document.getElementById(dis).style.display="";
}
function checkintst(str,check){
if(str == null || str == '') return;
var aIndex = str.split(',');
for(i=0;i < aIndex.length;i++)
{
var node = document.getElementById('interest'+aIndex[i]);
node.checked = check;
}
}
var types = [[true,'1,2,3,4,5,6,7'],
[true,'8,9,10,11,12'],
[true,'19,20,21,22,37'],
[true,'13,14,15,16,17,18'],
[true,'23,24,25,26,27'],
[true,'28,29,30,31'],
[true,'32,33,34,35,36']
];
function checktype( index ){
checkintst( types[index][1],types[index][0] );
types[index][0] = types[inde......
字体颜色间时变色代码(2006-03-29 16:51:00)
摘要:<td align="center" bgcolor="#F9F9F9">
<script>var message="法律声明:本站只提供信息交流平台,各交易者自己审辨真假,如有损失,本站概不负责。"
var n=0;
if (document.all){
document.write('<font size="12px" color="red">')
for (m=0;m<message.length;m++)
document.write('<span id="neonlight" style="font-size:12px">'+message.charAt(m)+'</span>')
document.write('</font>')
var tempref=document.all.neonlight
}
else
document.write(message)
function neon(){
if (n==0){
for (m=0;m<message.length;m++)
tempref[m].style.color="#000000"
}
tempref[n].style.color="RED"
if (n<tempref.length-1)
n++
else{
n=0
clearInterval(flashing)
setTimeout("beginneon()",1000)
return
}
}
function beginneon(){
if (document.all)
flashing=setInterval("neon()",50)
}
beginneon()
</script></td>......