1.自动根据当前月份 创建 天数 生成checkbox 控件 并根据数据库中的记录自动选中对应的
checkbox
原理: 先算出当月的天数 在遍历生成对应数量的checkbox 控件。生成时比较数据库中是否有该记
录来判断是否选中
具体文件: ui/user/clientmag_kefuworktime.aspx
2. 如何获取嵌套控件中子控件内的多个选项(如 CheckBoxList) 将其存入数据库 例:权限功
能中 一页对应多个按钮
原理:遍历整个控件 找到CheckBoxList 控件后 遍历期内的items 将选中的项的value 放入
arraylist 中,然后将其转换成数组
如:string[] rightid = (string[])al.ToArray(typeof(System.String)); 在将其存入数据库中
具体文件: ui/user/clientmag_setCompetence.aspx
3.得到一个记录表后,如何得到符合某个条件的记录
原理:通过 table.select(conditon)[0][field].ToString();
4.用枚举绑定 下拉列表框
原理:先创建一个arraylist 再将 enum的值赋给arraylist 再进行绑定
ArrayList list = new ArrayList();
foreach (int i in Enum.GetValues(typeof(Admintype)))
{
ListItem listitem = new ListItem(Enum.GetName(typeof(Admintype), i),
i.ToString());
list.Add(listitem);
}
ddlKefuType.DataSource = list;
ddlKefuType.DataTextField = "text";
ddlKefuType.DataValueField = "value";
ddlKefuType.DataBind();
5.在页面内调用用户控件(id=uc)内的方法 aa()
uc.aa();
6.在 repeater 内 用linkbutton 转向
方法1:<asp:LinkButton ID="bttake" OnClientClick='<%# GetRedirect2(Eval("Id") as
string) %>' />
方法2: 通过 itemCommand 事件 获取
7.获取上页地址
本页地址: Request.URL;
上页地址:
Request.UrlReferrer
Request.ServerViables["http_referer"]
Request.RawUrl
Request.RawUrl.QueryAndPath
System.IO.Path.GetFileName(Request.FilePath.ToString())
8.在页面中动态中生成 用户控件
control = this.Page.ParseControl(@"<%@ Register Src=""usercontrol/Money.ascx""
TagName=""Money"" TagPrefix=""MyControl"" %> <MyControl:Money ID='money1'
runat=""server"" />");
Panel1.Controls.Add(control);
9.非泛型集合类以及对应的泛型集合类
非泛型集合类 泛型集合类
ArrayList List
HashTable DIctionary
Queue Queue
Stack Stack
SortedList SortedList
10.repeater 中根据不同的数据显示 对应的控件,该控件为权限控件,不能设置控件 visble
方法一: 将控件放置在panel里 设置 panel 的visble
11.类库中无法使用 session request response
HttpContext.Current.request
HttpContext.Current.Session["admintype"]
HttpContext.Current.response
12.模板页中响应控件事件 不在form中处理
方法1:使用 ajax来处理 如checkbox 忙碌状态 当执行几次后数据库数据不更新 此时在url后面
加个随机数参数即可解决
13.在 JavaScript中 设置 checkbox 选中时
document.getElementById('chkIsBusy').checked= 后面为字符串 如果为空 不选 不为空 则选上
14. 当值为空时,单元框的边框不显示
在 table 的属性上加上 border-collapse:collapse 即可解决
15. javascript 缺少对象错误
当 使用 getElementsByName( name ) 时
I. 如果此语句在 name 控件之前 则报错 将代码放到此控件之后
II。检查这个页面是否有这个控件
16. javascript 传参数问题
字符串 加'' 传数组的话可以将数组转换成 字符串 再在js函数里用 split 分割
17.下拉列表的选择项
可以直接设置 ddl.selectvalue='内容' 实现 不用遍历其每一项
18.在 gridview中 显示 统计栏
在绑定代码内 找到 FooterRow 设置其内 cell[] 的值 如要统计 其值可以设为
ds.Tables[0].Compute("SUM(发单数)", null)
20. sql 语句的 连接字符串
SQL语句中当'为常量的时候里面要''才能打印出一个'。
例: set @str='select * from table where s='''+@s+''''
21.通过ShowModalDialog 打开页面,在POSTBACK时,打开新的页面?如何解决?
a、如果你是IE6,你将<base target="_self"/>加入到<head>标签里就可以了。
b、如果你是IE7,你必须将<base target="_self"/>加入到<head>的中间位置。
22. 多个页面的session问题
如果在一个页面中保存SESSION变量后 再在菜单中新建窗口或按ctrl+n 打开新窗口、跳转、或者更改地址栏都不会有问题 新开的页面可以获得此session
但如果关掉页面 重新打开则不能获取
原因:session传递依赖于sessionid,当关掉页面重开一个时相当于重新建立个sessionid 此时就不能获取原session的值了。
23.C#中&&运算符和&运算符、|运算符和||运算符之间有什么区别?
&、^ 和 | 运算符称为逻辑运算符。
&& 和 || 运算符称为条件逻辑运算符。也称为“短路”逻辑运算符。
&& 和 || 运算符是 & 和 | 运算符的条件版本:
x && y 运算对应于 x & y 运算,但仅当 x 为 true 时才计算 y。
x || y 运算对应于 x | y 运算,但仅当 x 为 false 时才计算 y。
24. 得到字符串对应的枚举的值
Convert.ToInt32(Enum.Parse(typeof( TradingServiceType), "Consignment", false));
25. decimal.Round 不是四舍五入 decima.tostring("N2") 则是四舍五入
decimal money=2.9m money*0.1 错误 应为 money*(decimal)0.1
将string 转换为 decimal 用 bool result=decimal.tryprase(sss,out decimal num)
26. 不同页面调用一个公共控件,当公共空间内的一个文本框执行回车事件后,有的页面有反应,有的没
解决办法: 在form 上加上 defaultbutton="btnQuery"
例:后台程序的 order.ascx
27. 判断一个数是否有有效的小数位
if( (int)num== num )
http://topic.csdn.net/t/20050615/14/4084169.html
28. sql 判断日期 datetime<@inputtime+1 和 datetime<"2009-05-25 23:59:59" 2者区别 前者可以精确取到当天时间。而后者则会将 23:59:59:000 后面的精度忽略不计
29. 清空 客户端 file 控件的值
file控件是一个特殊的控件 只能取值不能赋值
<input type="file" name="fileName" id="fileID">
var obj = document.getElementById("fileID");
obj.outerHTML = obj.outerHTML;
或者
var file1=document.getElementById("fileID");
file1.select();
document.execCommand('Delete')
30. 用xml 数据绑定下拉列表框
a.将xml数据放到 一个数组,将数组绑定到下拉框
b.用dataset读取xml 再绑定
31. WS调用问题
如果被调方没加soapheader 掉用方加上 则调用失败
32. 页面回车按钮触发事件
当回车后,页面自动调用第一个按钮事件。(提交按钮比普通按钮优先)。
如果想手工设定执行某个特定按钮,则需在此按钮调用代码后加上 return false;否则会接着调用页面默认的第一个按钮事件
代码参看: 求购后台--业务管理--orderdetail.aspx
33. javascript 替换换行符
replace 方法只会替换第一个符合条件的
可用正则表达式解决 replace(/[/n]/g,'<br />') /g 标示全部字符串
34. datatable 复杂操作
35. 游戏币 属性表 游戏物品种类表 现需要 取 游戏ID 游戏NAME 属性.支持定做 支持物品种类。装备
SQL 语句
KEY: case when then end
36. javascript 方法参数中 含有单引号 如 οnclick=" fc(' aa' ')" 遇到这种情况 将单引号替换成别的字符,取的时候再进行转换
37. 防止页面刷新后再次执行上一次操作;
解决办法:在操作方法最后重新指向本页
38. 跳到登录页面 完成登录跳转回来时 页面部分参数被截掉
解决办法:在跳转到登陆页面前 将当前地址 HttpUtility.UrlEncode 编码下 这样就不会出现截取字符情况
39. 服务器端控件 执行页面跳转时,如果采取前台JS跳转,则需在跳转代码后加 return false;否则点击后无反应。
40. machineKey的作用在于下述场景:
ASP.net 使用 forms authentication 时的 cookie 数据的加密和解密。以确保这部分数据不会被篡改。
viewstate 数据的加密和解密。以确保这部分数据不会被篡改。
使用进程外session(out-of-process session)时,对会话状态标识进行验证。
41. as(C# 参考)
用于在兼容的引用类型之间执行转换。 如果用于值类型转换 则结果为 null
42. 控件包含代码块(即 <% ... %>),因此无法修改控件集合。
结构: 采用模板的页面 <asp:content > <div runat="server"> <%=ssss%> </div> </asp:content> 在后台 container1.innerhtml='' 时 报错
43. javascript 将字符串转换为数字
在javascript中有转换字符串到数字的函数:parseInt,parseFloat
对于这样的字符串'12aaa', '123'这样的字符串转换是没有问题的。可是对于'008','0001'这样的字符串,很容易理解为自然会转换为8,1嘛,呵呵,你如果这样认为,恭喜您,您中标了。总以为javascript这样无类型的解释型语言是万能的,但最终得到的结果却是0。太意外了啊!!!,最终偶的解决方案是,先用Number来转,如下:
var s = '0001';
var num = new Number(s);
alert(num); // 输出1
如果转换失败则返回NaN,可以用isNaN函数来判断是否是数字。这样基本解决了转换错误的问题,
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aquadp/archive/2008/04/04/2248708.aspx
44. 生成随机数重复问题
for (int i=0;i<n;++i)
{
var rnd = new Random ();//用系统时间作为种子
Console.Write ("{0},",rnd.Next());
}
97,97,97,97,....97,30,30,30,30,30,30,30,30,30,30,30,30,....,27,27,27,27,27,27,....
这是因为Windows系统时钟的更新频率大概在10ms左右.而这个for循环的执行显然要快
得多.于是在一段执行时间内Environment.TickCount (Random的默认种子)或是C的time函数返回的
都是同一个值.从而导致rnd.Next在一段时间内返回一个常数.
正确代码:
var rnd = new Random ();//用系统时间作为种子
for (int i=0;i<n;++i)
{
Console.Write ("{0},",rnd.Next());
}
45. 一个方法多个地方调用
因可以多处调用,各个地方的日志记录不完全相同。因此最好将方法的返回结果设为bool 各处调用后根据结果再自行记录日志.
46. 前台JS方法参数中用到客户信息中包括一些特殊字符 如 % / ‘ “ 会造成页面JS出错
在后台代码中将用户信息字符串转换成unicode编码,这样就不会对页面JS产生影响
public static string StringToUnicode(string srcText)
{
string dst = "";
char[] src = srcText.ToCharArray();
for (int i = 0; i < src.Length; i++)
{
byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
string str = @"/u" + bytes[1].ToString("X2") + bytes[0].ToString("X2");
dst += str;
}
return dst;
}
47. 网站防攻击
需注意的几个方向: SQL注入 XSS跨站点攻击
48.数据库连接字符串 技巧
我们在桌面上点右键,新建一个文本文件。然后我们选中那个文件按F2,呵呵,就是改名拉,将名字改成aaa.udl。然后我们双击这个文件,然后点击提供程序,看吧,出现了很多数据库连接是不是?选你自己想连的数据库。
如果你跟我一样是连access,你就选Microsoft Jet4.0 OLE DB Provider,
如果是连sql server,就选Microsoft OLE DB Provider for SQL Server,
如果连Oracle,就选Microsoft OLE DB Provider for Oracle,
然后下一步,填入你的数据库路径,数据库的登陆名和密码,然后点测试连接,测试通过,OK,现在请注意,一定要把允许保存密码的勾打上,不然等会连的时候会找不到密码,提示你用户名密码出错的,然后确定。再用记事本打开aaa.udl文件,看,连接字符串出来了,最后一行就是的,easy吧,我们把最后一行(也就是Provider开头的那一行)复制到Web.config文件中的connectionString=""的两个"中间,好,这就OK了~
49. 数据库连接 连接未关闭。 连接的当前状态为打开。问题的解决
public static SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
if (conn.State ==ConnectionState.Closed)
{
conn.Open();
}
一定要在打开前判断
50. 一次批量插入多条数据
insert into Table(id,name) select 'id1','name1' union select 'id2','name2' .....
51. 读取XmlNode节点内子节点的值 需注意地方
node.SelectSingleNode("name") name 的大小写必须和节点保持一致 否则取不到该节点
52. 数据库中取数据后转换
DateTime 类型 取出后转换 DateTime.Parse(row["column"].ToString()) 会损失精度 2010-4-15 22:29:00.997 997 丢失
原因是 DateTime的ToString方法,而DateTime的不带格式参数的ToString方法是不会返回毫秒的
解决办法 强制转换 DateTime dt = (DateTime)row["column"], 事先判断是不是为空
53. c# 中正则表达式中 /b
如果用到 /b 则需在字符串中再转义下,否则 /b在C#中含义为 退格
54. 使用接口传输 xml 字符串时遇到的问题
a.内容里有单引号 ,导致插入SQL语句报错。 解决办法:将单引号 转义下 SQL中2个单引号表示一个单引号
b. 出现十六进制值 0x0B 是无效的字符错误,原因是xml中包含低位非打印字符。替换下这些字符 http://hi.baidu.com/zhuojingzhao/blog/item/9f73cfcda084071b00e9287d.html
55. 免费短信接口 :sms.api.bz
https://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容