浪曦博客系统

后台:有风起浪   admin

PowerDesigner 新建 选择Object-Oriented Model   First diagram 选择 Use Case Diagram

使用sqlserver2008一定要安装sp1补丁

AjaxControlToolkit 控件包

分离数据库时提示正在使用  解决方法use master    再分离

Linq可以查询 数据库、数组、集合类、XML

添加新项:LINQ to SQL 类    生成.dbml文件  从服务器资源管理器中把表直接拖到.dbml文件中  点击其中的一个表  右键 添加 关联

*{padding:0; margin:0;}

float:left; 本身及其里面的内容都居左

photoshop中选择 复制 新建 可以知道选中图片的高宽,用拾色器可以知道特定的颜色。

指定某个超链接的样式:A.HelpLink{   }

background-position:center top;

background-position:0px -64px;   //图片的左边 向上提64px

窗口大小改变而文字的相对位置保持不变:

<script type="text/javascript">

window.onresize = doReSize;

window.onload = doReSize;

function doReSize(){   //窗口大小改变而文字的相对位置保持不变:

document.getElementById("Theme").style.marginLeft = (document.body.clientWidth/110 * 2) +  "%";

document.getElementById("SubTheme").style.marginLeft = (document.body.clientWidth/110 * 2)  + "%";

init();

}

function init(){     //IE跟Firefox不兼容不

if(navigator.userAgent.indexOf("MSIE")>0){

}

if(navigator.userAgent.indexOf("Firefox")>0){

document.getElementById("HeadBody").style.height = "160px";

document.getElementById("NavSubList").style.marginLeft = "332px";

document.getElementById("left_list").style.paddingLeft = "0px";

}

}

</script>

设置行高line-height,文字默认在行内居中。

设置了flaot属性,其会自动占用一定的空间,需要设置margin属性。

letter-spacing:2.4pt; 字符间距

clear:both;  vertical-align:middle;

div的height、float属性在火狐下不兼容

use DAL;

private static LangSinLinqDataContext db=new LangSinLinqDataContext();

var u=from user in db.Tab_Manager where user.Mname==username && user.Mpwd==upwd select user; //var是任何类 型的变量  不能用and要用&&  user是表的别名

if(u.Count()<1)

数据库放在App_Data文件夹下打开页面报错,解决方法App_Data文件夹右键属性 高级  选择可以存档

IE跟火狐下居中:

<script type="text/javascript">

    function init() {

        document.getElementById("loginForm").style.left = screen.width / 2 - document.getElementById ("loginForm").clientWidth/2 - 10 + "px";

    }

</script>

css中定义 #loginForm {position:absolute;}

两个RadioButton控件,要设置GroupName属性。

FCKeditor编辑器的使用:1.把文件夹htmlEdit放在项目WEB下  2.引用dll  3.web.cong文件中<appSettings><add  key="FCKeditor:BasePath" value="~/WEB/htmlEdit/fckeditor/"/></appSettings>

静态方法中要调用方法外的变量,则此变量必须是静态的。

article.AHtmlFileName = article.ADate.Replace("-", "").Replace(":", "").Replace(" ", "");

Linq插入数据:

 private static  LangSinBlogLinqDataContext db = new LangSinBlogLinqDataContext();

 public static void insertArticle(Article article) {

            Tab_Article t = new Tab_Article();

            t.Atitle = article.Atitle;

            t.Aclass = 1;

            t.Aauthor = "admin";

            t.AContent = article.AContent;

            t.Adate = Convert.ToDateTime(article.ADate);

            t.AHtmlFileName = "";

            t.AType = Convert.ToChar(article.AType);

            db.Tab_Article.InsertOnSubmit(t);

            db.SubmitChanges();

        }

Linq查询数据:

public static IQueryable getArticleList() {

            return from article in db.Tab_Article orderby article.id descending select article;

        }

Linq查询一条数据:var article = db.Tab_Article.Single(t => t.id == Convert.ToInt32(id));

Linq更新一条数据:

public static void updateArticle(Article a) {

var article = db.Tab_Article.Single(t => t.id == Convert.ToInt32(a.Id));

            article.Atitle = a.Atitle;

            article.AContent = a.AContent;

            db.SubmitChanges();

        }

Linq更新一个字段的所有数据:

public string UpdateRole(int RoleID, string RoleName, string Description) 

try 

var obj = sysdb.SYS_ROLE.SingleOrDefault(x => x.RoleID == RoleID); 
if (obj == null) 

return "该角色已不存在,可能同时多个客户端在操作本项."; 


obj.RoleName = RoleName; 
obj.Description = Description; 
sysdb.SubmitChanges(); 

catch (System.Exception ex) 

return ex.Message; 

return string.Empty; 
}

Linq删除一条数据:

public static void deleteArticle(string id) {

            var article = db.Tab_Article.Single(t => t.id == Convert.ToInt32(id));

            db.Tab_Article.DeleteOnSubmit(article);

            db.SubmitChanges();

        }

Linq多表查询:

        public static IQueryable getArticleListByClass(string _aclass) {

            if (_aclass == null || _aclass == "")

            {

                var query = from t in db.Tab_Article

                            orderby t.id descending

                            from c in db.Tab_Article_Class

                            where t.Aclass == c.id

                            select new

                            {

                                id = t.id,

                                AIsOut = t.AIsOut,

                                Atitle = t.Atitle,

                                Adate = t.Adate,

                                Atype = t.AType,

                                Cname = c.Cname,

                                Acontent = t.AContent,

                                AHtmlFileName = t.AHtmlFileName

                            };

                return query;

            }

            else {

                var query = from t in db.Tab_Article

                            orderby t.id descending

                            from c in db.Tab_Article_Class

                            where t.Aclass == c.id 

                            && 

                            t.Aclass == Convert.ToInt32(_aclass)

                            select new

                            {

                                id = t.id,

                                Atitle = t.Atitle,

                                AIsOut = t.AIsOut,

                                Adate = t.Adate,

                                Atype = t.AType,

                                Cname = c.Cname,

                                Acontent = t.AContent,

                                AHtmlFileName = t.AHtmlFileName

                            };

                return query;

            }

        }

生成静态页面:1.准备模板页 2. .cs页面代码

生成静态页面的方法:

1.标签替换、

2.伪地址:为了SEO  a.引用URLRewriter.dll  2.配置web.config

3.HttpHeader 生成静态:先进行地址映射,后生成静态页面。

IndexOf的用法:

   int index = text.IndexOf("?");

                    if ((index != -1) || ((index + 1) < text.Length))

                    {

                        queryString = text.Substring(index + 1);

                        if (index > 0)

                        {

                            filePath = text.Substring(0, index);

                        }

                    }

HttpRuntime将Http请求转交给 HttpApplication,HttpApplication代表着程序员创建的Web应用程序。HttpApplication 创建针对此Http请求的 HttpContext对象,这些对象包含了关于此请求的诸多其他对象,主要是HttpRequest、 HttpResponse、HttpSessionState等。这些对象在程序中可以通过Page类或者Context类进行访问。

Response.Filter属性:在数据发送出去前通过绑定的Filter来修改HTTP实体数据

string rawUrl=Request.RawUrl;  //测试的url地址是http://www.test.com/testweb/default.aspx?id=1, 结果如下:

结果为: /testweb/default.aspx?id=1

string Path=Request.PhysicalApplicationPath;  //取得当前页面的物理路径

Server.MapPath(".");                           //页面所在目录的物理全路径

分页事件:

protected void ArticleGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)

    {

        this.ArticleGridView.PageIndex = e.NewPageIndex;

        this.ArticleGridView.DataSource = ArticleManager.getArticleList();

        this.ArticleGridView.DataBind();

    }

AJAX控件ModalPopupExtender的使用:

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>

<ajaxToolkit:ModalPopupExtender runat="server" ID="modalPop" TargetControlID="LinkButton1"  PopupControlID="UpdatePanel2" CancelControlID="ArticelClassClose"></ajaxToolkit:ModalPopupExtender>

两个UpdatePanel控件

ListView控件:

<ItemTemplate>

</ItemTemplate>

<EmptyDataTemplate>

<span>未返回数据</span>

</EmptyDataTemplate>                

<LayoutTemplate>

<div id="itemPlacehodlerContainer" runat="server" style="">

<span id="itemPlaceholder" runat="server"></span>

</div>

</LayoutTemplate>

.cs页面代码protected void Page_PreRender(object sender, EventArgs e) {

        this.ListView1.DataSource = ArticleManager.getArticleListByClass(null);

        this.ListView1.DataBind();

    }

与ListView控件配套使用的分页控件DataPager:

<asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="4">

   <Fields>

       <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="False" 

                    ShowNextPageButton="False" ShowPreviousPageButton="False" />

       <asp:NumericPagerField />

                <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="False" 

                    ShowNextPageButton="False" ShowPreviousPageButton="False" />

   </Fields>

        </asp:DataPager>

//DropDownList控件在编辑时多加一句:

DropDownList1.Items.FindByValue(a.Aclass).Selected = true;

Jquery的HTML编辑器(xhEditor)插件配置:不需要提交刷新,所以去掉<form>标签

var uname = $("#uname").val();

//组成对象的JSON方式

var queryString = { uname: uname, ucontent:escape(ucontent) };

$("p:eq(0)") 表示众多<p>标签中的第一个

$.ajax({

                type: "POST",

                url: "resultPage.aspx",

                data: createQueryString(),

                dataType:"json",

                success: function(msg) {

                $("p:eq(0)").html(unescape(msg.ucontent));

                }

            });

aspx页面做异步提交:.cs页面用Response.Write返回值,则aspx页面要删除除第一行外的其它代码;

返回josn格式数据的写法:Response.Write("{\"uname\":\""+Request["uname"]+"\",\"ucontent\":\""+Request ["ucontent"]+"\"}");

escape()对输入的内容进行转码,unescape()对内容进行解码.

jsonBuilder.Append(@"{""");  输出结果为{'      也可以写为jsonBuilder.Append("{\""); 好像也可以直接写为jsonBuilder.Append("{'");

去掉最后一个逗号:jsonBuilder.Remove(jsonBuilder.Length-1,1); 

$.each(){}循环;

var row=$("#main").clone(); row.appndTo("#mainBox");将row追加到mainBox元素中;

row.attr("id","main"+n.id);加上属性

.remove()删除元素   .hide(1000)滑动删除元素

js中:"<span onclick=del('"+n.id+"')>删除</span>"  注意单双引号  输出的结果为<span onclick="del('9')">删除 </span>

aspx页面可以写成:<%=a.id%>

css中的写法:Div.tres span.current

<a href='javascript:getReList(1)'> 1 </a>

clsObjectShredder.cs把用linq返回的数据转换为DataTable时,须加此文件。

循环div时默认会换行,要都在一行显示则需设置属性:float:left;

HTML中单选按钮的name属性相同,id属性不同。

aspx页面中用HTML控件<input id="Radio1" type="radio" name="rad" checked="checked" value="cccc"/><input  id="Button2" type="submit" value="button" />,.cs页面中用string id = Request.Form["rad"];接收值。

客户端清除缓存:

<meta http-equiv="Pragma" content="no-cache" />

<meta http-equiv="Cache-Control" content="no-cache" />

<meta http-equiv="Expires" content="0" />

服务端清除缓存:

        Response.Buffer = true;

        Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);

        Response.Expires = 0;

        Response.CacheControl = "no-cache";

        Response.AddHeader("Pragma","No-Cache");

锚点(提交页面后回到指定的位置):

aspx页面<a name="section1">&nbsp;</a>

.cs页面Response.Redirect("SkinMng.aspx#section1");

实例化一个派生类时,会先执行基类中的构造函数,然后执行自己的构造函数。

UpdatePanel控件可以实现局部无刷新,当UpdatePanel控件只针对某个button进行click事件注册,UpdatePanel 标签内部添加以下内容即可:

<Triggers> 

            <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />

</Triggers> 

使用AJAX控件ModalPopupExtender:

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">

                        <ContentTemplate>

                            <div id="updatePanelStyle" style="background-color:#eeeeee; width:450px; height:300px; border:1px  solid #000000;">

                                <p style="text-align:center; font-size:14px;">文章分类管理</p>

                                <asp:GridView ID="ArticelClassGridView" runat="server" 

                                    AutoGenerateColumns="false" onrowediting="ArticelClassGridView_RowEditing" 

                                    OnRowUpdating="ArticelClassGridView_RowUpdating"

                                    onrowcancelingedit="ArticelClassGridView_RowCancelingEdit" 

                                    DataKeyNames="id" onrowdeleting="ArticelClassGridView_RowDeleting">

                                    <Columns>

                                        <asp:BoundField DataField="id" HeaderText="编号" Visible="false" />

                                        <asp:BoundField DataField="cName" HeaderText="分类名称" >

                                            <ItemStyle Width="300px" />

                                        </asp:BoundField>

                                        <asp:CommandField ShowEditButton="true" />

                                        <asp:CommandField ShowDeleteButton="true" />

                                    </Columns>

                                </asp:GridView>

                                <br />

                                <asp:TextBox ID="ArticelClassBox" runat="server"></asp:TextBox>

                                <asp:Button ID="ArticleClassSubmit" runat="server" Text="添加" 

                                    onclick="ArticleClassSubmit_Click" />

                                <br />

                                <asp:Button ID="ArticelClassClose" runat="server" Text="关闭" />

                            </div>

                        </ContentTemplate>

                    </asp:UpdatePanel>

<ajaxToolkit:ModalPopupExtender runat="server" ID="modalPop" TargetControlID="LinkButton1" PopupControlID="UpdatePanel2"  CancelControlID="ArticelClassClose"></ajaxToolkit:ModalPopupExtender>

posted on 2011-01-29 16:24  cw_volcano  阅读(313)  评论(0编辑  收藏  举报