您的位置:首页 > 运维架构 > 网站架构

学习网站以来的错误总结

2007-11-02 22:13 316 查看
学习网站以来的错误总结

以下是我学网站以来的错误总结,写出来与大家分享一下。希望大家能有好的办法给予指导.
1 顶部图片下方有空隙产生解决的办法:
---------------------------------------------------------
1) 设置img 为 style="display:block"
2)设置vertical-align属性为vertical-align:top | bottom |middle |text-bottom

2 弹出窗口时传参绑定问题,写时有时浏览器不能解析。正确写法
-----------------------------------------------------------

<a href='#'

onclick=javascript:window.showModelessDialog('listphoto.aspx?id=<%#Getstr(Eval("picpath").ToString())%>','','dialogWidth=800') >


3 css 中可能使有javascript 代码.
---------------------------------------------------------
如: Css 的expressin 可以用js 代码

a
{
target:expression(this.target="_blank");
}


4 在aspx 中,页名命名不能和函数名一样
---------------------------------------------------------
如,test.aspx,在test.aspx.cs,中,函数名不能命名为test()

5 在.net2.0中,滚动条样式不能应用解决的办法
---------------------------------------------------------
1)删除应用样式前台代码中的此行代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


2)滚动条样式的应式一般都写在body中。如:

body
{
SCROLLBAR-FACE-COLOR: #799ae1;
SCROLLBAR-HIGHLIGHT-COLOR: #799ae1;
SCROLLBAR-SHADOW-COLOR: #799ae1;
SCROLLBAR-3DLIGHT-COLOR: #799ae1;
SCROLLBAR-ARROW-COLOR: #ffffff;
SCROLLBAR-TRACK-COLOR: #aabfec;
SCROLLBAR-DARKSHADOW-COLOR: #799ae1;
}


把上面的body 改为html 就可应用上滚动条样式

6 表格自动换行,不会被撑大
----------------------------------------------------------

style="table-layout: fixed; word-break: break-all; "


7如何让某一标签应用两个 CSS样式
----------------------------------------------------------

<p class="text side">...</p>


同时给P元素两个类,中间用空格格开,这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话,后设置的起作用,即在CSS文件中放在后面的类的属性起作用。

8 应用样式时的优先级
----------------------------------------------------------
如: td{ height:19px!important;height:18px}
!important它指定当前样式的优先级为高,后边再进行定义的相同样式是不会将其重置。因此按标准的CSS来说,height:18px这一句是无效的,因为前边的定义具有更高的优先级。

但是IE不支持该属性,而Firefox却支持。。

因此在Firefox中认的是height:19px,而IE则会先被设置为height:19,然后再设置为height:18px,这种现象可以加以利用实现IE和Firefox的布局兼容

9 使用.net 2.0换肤 用法总结
---------------------------------------------------------
换肤,在朋友的提醒下,用cookies。
便想到了用javascript 和cookies 一起来使用,但是javascript 不是太好用。后来就放弃了。
.net 2.0集成有skin 外观文件。可以用skin 和cookies 一起使用来实现这一效果.
方法:
1:)定义外观文件blue 和orage 两个,自动放在App_Themes 文件夹下.
2:)在blue和orange 文件夹下,可以建css文件和.skin文件.
3:)在page_PreInit()根据传参的不同,更改言主题;具体代码如下:

protected void Page_PreInit(object sender, System.EventArgs e)
{
string str = "";
if (HttpContext.Current.Request.Cookies["theme"] != null)
{
str = Convert.ToString(HttpContext.Current.Request.Cookies["theme"]);
}
if (!string.IsNullOrEmpty(Request.QueryString["theme"]))
{
Page.Theme = Request.QueryString["theme"];
HttpCookie skin = new HttpCookie("theme");
skin.Value = Page.Theme;
Response.Cookies.Add(skin);
}
else if (str.ToString() == "")
{
Page.Theme = "blue";
}
else
{
Page.Theme = Request.Cookies["theme"].Value.ToString();
}
}


代码这样写就实现了换肤的功能,但是你关闭该页面,再次打开时还是原来的,不是你更改过的,这是为什么呢?
找了好长时间才知道原来是cookies 没有设有效日期。
在建立cookies时加一句

skin.Expires=convert.ToDateTime(DateTime.Now+TimeSpan.FromDays(1));


这样可以设cookies的有效时间为1天
通过这次学习学会了
1 使用cookies
2 skin
3 不旦 在Dream 下可以创建下拉菜单 ,在FireWorks 也可以实现。
10.javascript特殊字符
--------------------------------------------------------------------

<body>

</body>
<script>
data=function()
{/*测试数据放在这儿了随便放什么数据“'”或“"”这些特殊字符都可以*/}
alert((data+"").slice(13,-4))
</script>


11.RSS实现方法。
-----------------------------------------------------------------
1:动态生成一个xml 文件 方法如下
1) 新建一下Rss.aspx 页,前台把html标签删除。
在Rss.aspx.cs页中Page_Load()中,

Response.ContentType="text/xml";
Response.Write(GetRss());


2)在GetRss()函数中生成一个Xml格式的文件

newsdb db = new newsdb();
string sqlstr = "select * from Content";
DataSet ds = db.GetDatasetbysqlstr(sqlstr);
StringBuilder strCode = new StringBuilder();
strCode.Append("<?xml version=/"1.0/" encoding=/"utf-8/" ?>");
strCode.Append(@"<rss verson='2.0'>");
strCode.Append("<channel>");
strCode.Append("<title>新闻显示</title>");
strCode.Append(@"<link>http:[b]//"+Request.ServerVariables["SERVER_NAME"]+"</link> ");

strCode.Append("[/b]<copyright>Copyright 2005</copyright> ");
foreach (DataRow dt in ds.Tables[0].Rows)
{
string ID = dt["NewsID"].ToString();
string title = dt["Title"].ToString();
strCode.Append("<item>");
strCode.Append("<title>" + title + "</title>");
strCode.Append(@"<link>http:[b]//" + Request.ServerVariables["SERVER_NAME"] + "/admin/Admin_show.aspx?ID=" + ID + "</link>");
           strCode.Append("[/b]</item>");

}

strCode.Append("</channel>");
strCode.Append("</rss>");
return strCode.ToString();


12. .net 2.0中url映射方法
----------------------------------------------------------------------
直接在webconfig中配
在 <System.Web>下

保存

<UrlMappings enabled="true">
<add url="~/defalut" mappedUrl="default.aspx">


这样在引用页时直接用default就行了


:<a href="default">首页</a>


此中方法可以隐藏扩展名

13 .net 连结SQL2005,可以任意换到其它电脑而不用附加数据库
-------------------------------------------------------
在写连接字符串时在web.config中配置如下:

<add name="Constr" connectionString="Data source=.;AttachDbFilename=|DataDirectory|/test.mdf";integrated secuity=true;"
providerName="System.Data.SqlClient"/>


但是数据库要放在app_data下

14.在数据绑定时如果是bool型的,用eval绑定时并不想让显示ture ,或false
---------------------------------------------------------------------

<ItemTemplate>
<asp:Label ID="flagLabel" runat="server"  Text='<%#Convert.ToInt32(Eval("flag"))==0 ? "<span style=color:red>未回答</span>":"<span class=finish></span>" %>'>'></asp:Label>
</ItemTemplate>


15 使用showModelessDialog时,如果不想在对话框中弹出新窗口,解决办法
----------------------------------------------------------------------

<a href="#" onclick=javascript:window.showModelessDialog('answerquestion.aspx?id=<%#Eval("id")%>','','dialogWidth=800') >回答</a>
在answerquestion.aspx页中的<head></head>之间加上这行代码
<base target="_self">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: