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

工作中总结的一些小知识点,散乱的记录下来的,现在总结一下, (可能看起来比较晕呢 = =!):

1. string.Compare()方法有没有用过呢? 它能对strA,strB进行某一段开始的串比较,可以设置是否忽略大小写等.

2. 三级联动下拉框A,B,C,A>B>C
    若A变,则C也要清空时,可以用: B_SelectedIndexChanged(null,null);
    使C重新绑定一次,结果为空,但勿多用,好象会出现性能的损失喔。
  
3. DataGrid相关的几个Tips:
  1) datagrid:对其中的单元做变更时要注意,任何类似visible=false这种操作都会使
    当前的index变小,循环操作时要注意减到由visible=false引起的差量

  2) datagrid生成的table有一些我们不需要的样式,删掉datagrid自动生成的style      

var  obj1  =  document.getElementById( " dgrLevelList " );
ExpandedBlockStart.gifContractedBlock.gif
if  (obj1  !=   null ) {document.getElementById("dgrLevelList").style.cssText="";}

  3) ((DataBoundLiteralControl)e.Item.Cells[2].Controls[0]); 看明白了吗?可以将一个cell转化为 DataBoundLiteralControl 类型
 
  4) 取得DataGrid绑定的某一个字段值: (DataRowView)e.Item.DataItem)["isrecent"].ToString()
 
  5) DataGrid的ITEM绑定事件:
        itemcreated方法:是由上至下一条一条的生成item的事件
       itembound方法:是全部生成完datagrid触发的事件
       postback时,一定会触发itemcreated事件,但不会触发itembound事件。前面是绑定时,后者只会在datagrid.bind()时触发
    
   6) 有时我们需要动态invisible一些列.但必须要注意每次进行绑定之前,必须将所有列的visible还原为true,以免以前invisible的列显示不出来(上次为搞这头疼了2小时呢)
 
4. 自定义控件如何自定义TagName:

using  System;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.ComponentModel;

[assembly:TagPrefix(
" Emily.PlayControlbox " " Emily " )]  //  <- 这一句,看到了吗?在namespace上面定义
ExpandedBlockStart.gifContractedBlock.gif
namespace  Emily.PlayControlbox

5. 有时我们需要将jscript输出在一些控件后,以及某一些控件之前,可以将Script写到Literal对象中来实现
  
6. 可以使用ListBox.ClearSelection();方法来清除已选择的项

7. 转义字符:
  \a 与响铃(警报)\u0007 匹配。
  \b 如果在 [] 字符类中,则与退格符 \u0008 匹配;如果不是这种情况,请参见本表后面的“注意”部分。
  \t 与 Tab 符 \u0009 匹配。
  \r 与回车符 \u000D 匹配。
  \v 与垂直 Tab 符 \u000B 匹配。
  \f 与换页符 \u000C 匹配。
  \n 与换行符 \u000A 匹配。
  \e 与 Esc 符 \u001B 匹配。
  \040 将 ASCII 字符匹配为八进制数(最多三位);如果没有前导零的数字只有一位数或者与捕获组号相对应,则该数字为后向引用。(有关详细信息,请参见反向引用。)例如,字符 \040 表示空格。
  \x20 使用十六进制表示形式(恰好两位)与 ASCII 字符匹配。
  \cC 与 ASCII 控制字符匹配;例如,\cC 为 Ctrl-C。
  \u0020 使用十六进制表示形式(恰好四位)与 Unicode 字符匹配。
  \ 在后面带有不识别为转义符的字符时,与该字符匹配。例如,\* 与 \x2A 相同。
 
8.  Request.PhysicalApplicationPath.ToString(); 如果不指定则文件写在:c:\winnt\system32 目录

9.  模态窗口:
 父页面:

btnMore.Attributes.Add( " onclick " " var st = window.showModalDialog('SelectPerson.aspx','','dialogHeight: 220px;status: no;');if(st!= null){ document.all('TextMng').value=st};return st; " );

 子页面:

RegisterStartupScript( " OnClick " , " <script>window.returnValue =' "   +  DataList.Items[ 0 ].Cells[ 0 ].Text  +   " ';window.close();</script> " );

 子页面返回结果给window.returnValue;父页面得到结果st
 注意:模态窗口里一定要有这一句:<base target=_self> (写在body前)
取消时:

RegisterStartupScript( " key " , " <script>alert('您取消了操作!');window.returnvalue=null ;window.opener=null;window.close(this);</script> " );

10. 能用switch的地方总能抽象出一个抽象类(当然视必要性而言)

11. Oracle的几点Tips:
 1) 时间的比较,还能用add_months来进行比较,eg: add_months(sysdate,012) 

SELECT  t.id, count   AS  v_count, ' [ ' || s.cname || ' ] ' || t.title  AS  title,to_char(t.createdate, ' yyyy-mm-dd ' AS  datea 
   
FROM  news_information t,news_class_dic s 
  
WHERE  t.levelid  =  s.cid 
    
AND  to_char(t.createdate, ' yyyy-mm-dd ' <=   ' 2006-1-1 '   AND  author  !=   ' system '

    2) 还是时间的比较:
  SYSDATE为系统时间,直接用sysdate-t.e_date会得出秒的时差,而用t.e.date+3,则为+3天

      SELECT  ( CASE   WHEN  t.e_date  +   3   >  SYSDATE  THEN   1   ELSE   0   END AS  abc
     
FROM  base_class_info t
    
WHERE  (t.e_date  +   3 >=  SYSDATE

  3) 几个常用系统对象的查询:
   查询视图 select * from user_views
   查询表格 select * from user_all_tables
   查询所有系统列 select * from ALL_CONS_COLUMNS
   查询所有用户列的注释 select * from USER_COL_COMMENTS where lower(column_name) like '%train_type_name%'
   
12. #define的妙用: (看懂了莫? 有时需要有一些debug的数据,可以这么做)

#define  SXUN_DEBUG 
#if  SXUN_DEBUG
//
#else
// ..
#endif

不用时:
 #undef SXUN_DEBUG
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值