工作中总结的一些小知识点,散乱的记录下来的,现在总结一下, (可能看起来比较晕呢 = =!):
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
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.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
[assembly:TagPrefix( " Emily.PlayControlbox " , " Emily " )] // <- 这一句,看到了吗?在namespace上面定义
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. 模态窗口:
父页面:
子页面:
子页面返回结果给window.returnValue;父页面得到结果st
注意:模态窗口里一定要有这一句:<base target=_self> (写在body前)
取消时:
10. 能用switch的地方总能抽象出一个抽象类(当然视必要性而言)
11. Oracle的几点Tips:
1) 时间的比较,还能用add_months来进行比较,eg: add_months(sysdate,012)
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天
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的数据,可以这么做)
#if SXUN_DEBUG
//
#else
// ..
#endif
不用时:
#undef SXUN_DEBUG