web开发中的点滴
1.链接,如果是html标签,/webform.aspx,会自动从根目录开始查找文件。而非html标签可用相对路径:~/.而最好不要直接写webform.aspx
2.使用List<string>或字符串数组作为Repeater等控件的数据源时,在aspx页面使用Container.DataItem属性进行绑定。即可显示出来数组中的内容。
3.如果要给aspx页面中的<a>标签或<linkbutton>加客户端的事件,则最好使用.href='javascript:......'不要省略javascript:否则会被当成文件,浏览器会自动加上当前的URL路径,而导致函数不能正确执行。
4.linkbutton 在后台代码里处理它的onclick 和 onclientclick 属性:
linkbutton.Attributes["href"] = "#"; linkbutton.OnClientClick = ""; linkbutton.Click -= linkbutton_Click;
5.SqlHelper.ExecuteScalar 的返回值是 object,如果直接ToString(),可能会引发空引用的异常,所以需要判断一下,DBNull.Value or null.
6.使用母版页时,在设计时可以把母版页当作宿主,但在使用时可以当成用户控件,MasterPage确实继承自UserControl类,在内容页执行
时,先执行本身PageLoad再执行母版页的PageLoad.然后再执行本页回发事件。如果页面中又含有用户控件,则接着才执行用户控件的PageLoad.
7.在前端页面中使用的显示的变量如<%=Variable %> 这个variable可以是Protected型的,而不必须是public的。。因为在同一个命名空间里。
8.page页面输出字符串的时候,最好加上htmlencode.使用这个方法可以避免被<style></style>和<script></script>等标签污染页面。
9.放在appdata下的数据库文件,在运行的时候,可以被自动附加到数据库中。
10.查找sqlserver存储过程和函数中的关键字,可以使用
SELECT * FROM
INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION
LIKE '%xxx%'
11.<img alt="" src="<%=BLLRss.GetServerImagePath(Model.prdpic[0]) %>"; border=1 height=58 width=58 onerror="this.src='<%=Request.ApplicationPath%>Content/Images/ymPrompt/ask.gif'" /> 这样的写法可以保证,img的图片如果加载不上的话,你可以设置一个安全的路径找到一个图片。不至于显示XX.
12.IE6中<a href="javascript:void(0)" onclick="alert('hello')">会有问题,可以改为<a href="###" ....>
13.sql server 中临时表的使用体验:
CREATE PROCEDURE sp_weborder_getPagedProductList
@TableNames VARCHAR(200), --表名,可以是多个表,但不能用别名
@PrimaryKey VARCHAR(100), --主键,可以为空,但@Order为空时该值不能为空
@Fields VARCHAR(200), --要取出的字段,可以是多个表的字段,可以为空,为空表示select *
@PageSize INT , --每页记录数
@CurrentPage INT, --当前页,0表示第1页
@Filter VARCHAR(100) , --条件 此处必须是parentid 即dept_id
@Group VARCHAR(200), --分组依据,可以为空,不用填 group by
@Order VARCHAR(200), --排序,可以为空,为空默认按主键升序排列,不用填 order by
@totalCount bigint
as
BEGIN
DECLARE @parent_id int
SET @parent_id=convert(INT,@Filter)
create table ##t_level(dept_id int ,[Level] int)
DECLARE @Level int
SET @Level=1
INSERT ##t_level SELECT @parent_id,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT ##t_level SELECT a.dept_id,@Level
FROM dbo.weborder_dept a,##t_level b
WHERE a.parent_id=b.dept_id
AND b.Level=@Level-1
END
SELECT @TableNames='weborder_product_family'
SELECT @Filter= ' dept_id in (select dept_id from ##t_level)'
exec dbo.page
@TableNames ,
@PrimaryKey ,
@Fields ,
@PageSize ,
@CurrentPage ,
@Filter ,
@Group ,
@Order ,
@totalCount output
----手动删除全局临时表
drop table ##t_level
END