总结一下散乱的开发点滴(3) (高手勿入)

1. 从一个枚举值得到对应的串:   

//  定义一个枚举
ExpandedBlockStart.gifContractedBlock.gif
    enum  Colors  { Red, Green, Blue, Yellow } ;
   
//  得到串
   System.Enum.GetName(System.Type type,  object  obj);
  Enum.GetName(
typeof (Colors),  3 )
   
//  返回Yellow

2. oracle: blob的读写方法write,read

3. ref在置参前,一定要先给参数分配内存,也就是需要实例化
   如果遇到接口不允许实例化,可以先实例化继承接口的类,如下:  

public   abstract   class   UserInfo : IIdentity
实例化方法:
UserInfo user 
=   System.Web.HttpContext.Current.User.Identity  as  UserInfo;

5.下面代码一出来大家就知道是干嘛用的吧
   有的时候我们不想让用户直接在IE中打开已知类型的文件,比如Word,而希望能直接下载,这时候可用下面代码来替换Response.Redirect

Response.ContentType  =   " application/octet-stream " ;
Response.AddHeader(
" Content-Disposition " " attachment;FileName= " + fileName);
Response.BinaryWrite((
byte [])YourFileData.Rows[ 0 ][ " AttachmentContent " ]);
Response.End();

   Lostinet :
        补充一下。通常我喜欢把链接做成这样:
       <a href="download.aspx/hello.chm?fileid=12345">hello.chm</a>
       这样客户端下载的时候默认是 hello.chm 这个名字的。

6.  用如下方法来创造一个类的单例实例化方法         

ExpandedBlockStart.gif ContractedBlock.gif /**/ /// <summary>
  
/// 内容摘要: 构造函数进行初始化
  
/// </summary>

   protected  EvalModelBLLBase()
ExpandedBlockStart.gifContractedBlock.gif  
{
  }

  
private   static   volatile  EvalModelBLLBase m_instance  =   null ;
ExpandedBlockStart.gifContractedBlock.gif  
/**/ /// <summary>
  
/// 内容摘要: 取得EvalModelBLLBase对象
  
/// </summary>
  
/// <returns>返回一个已经存在的实体</returns>

   public   static  EvalModelBLLBase GetInstance()
ExpandedBlockStart.gifContractedBlock.gif  
{
   
// 通用的必要代码 iBatisNet双校检机制,如果实例不存在


   
if (m_instance == null)
ExpandedSubBlockStart.gifContractedSubBlock.gif   
{
    
lock (typeof (EvalModelBLLBase))
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
     
// 如果实例不存在


     
if (m_instance == null)
ExpandedSubBlockStart.gifContractedSubBlock.gif     
{
      
// 创建一个的实例
      m_instance = new EvalModelBLLBase();
     }

    }

   }


   
// 返回业务逻辑对象
   return m_instance;
  }




使用的时候就可以直接:obj.GetInstance().xxx();即可,在一定缓存时间内,使用的是同一个对象,省去了频繁的new obj();

注: volatile关键字,能将此线程中的对象缓存到属于它自己的内存空间中。在一个线程中使用单例.
         这儿有个关于volatile的详细解释:
         http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/csref/html/vclrfvolatile.asp
         http://www.coogo.net/bbs/dispbbs.asp?boardid=45&id=174529
         "使用 volatile 修饰符能够确保一个线程检索由另一线程写入的最新值。"        

7.  if (mString.length > 0) 比 if (mString != "") 效率高

8. obj.scrollIntoView()相当于focus

9.  <asp:BoundColumn DataField="INVESTIGATESTARTDATE" HeaderText="开始日期" DataFormatString="{0:d}"></asp:BoundColumn>
     来显示日期而不显示时间, 这个和formatstring的用法相同
  
10. dropdownlist等类似控件,它们寻找selectedIndex,是按value来找的,也就是说如果几个items的value相同,则会找到第一个items为selectedItem.所以当你发现几个ITEM使用同一个VALUE,无论怎么点,.net都只认为你选中第一项时不要意外。

11 动态装载usercontrol.  

userControl  =  (userControls.ProjectHome)LoadControl( " ../userControls/Project/ProjectHome.ascx " );
ctlHome.Controls.Add(userControl);     

12. 从XML转成DATASET

System.IO.StringReader sr  =   new  System.IO.StringReader(xmlstr);
DataSet ds 
=   new  DataSet();
ds.ReadXml(sr);

13. 模态窗口有时因为缓存的原因,有时无法进入page_load方式进行刷新:
      须加入 <meta http-equiv="pragma" content="no-cache">

总结一下散乱的开发点滴(2) (高手勿入) ( 10-08 17:21)
总结一下散乱的开发点滴(高手勿入) ( 09-21 14:21)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值