博文
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 //int sleep = 200; //每秒5次......
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 = @"
"; return button; } } 没错,这段代码就是为什么你按下插入图片(来自图片库)按钮,会出来一个网页对 话框,让你选择图片的原因。注意看其中的 var galleryscript = FTB_HelperFilesPath + ’ftb.imagegallery.aspx?rif=’+folder+’&cif=’+folder; ......
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 { string m_strFullPath = ""; &nb......
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 IfEnd FunctionPublic Function GetMac(ByVal IP As String) As String Try Dim dirResults As String &......
全选与取消(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[index][0]?false:true;}var allchecked = false;function checkall(){ allchecked = allchecked?false:tru......
字体颜色间时变色代码(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>......
