第一次做项目,学习到的有很多。即总结了一下,具体如下:
一、如何实现不同的内容在不同的页面显示:
1、使用 Session类可以保存内容,使内容在不同页面使用,例如: Session[“ aaaa”]=Lable.Text;即在不同页面都可访问Lable的值。
2、 ViewState类也可以,使用方法相似。但 ViewState只可以在同一页面使用。
3、a) 在URL中写入参数,即在转到一个页面时或超连接时写入参数。
例如: Response.Redirect("Login.aspx?from=article"); 跳转到Login.aspx页面,并传参数from=article;
string from = Request.QueryString["from"]; 在Login.aspx页面获取到另一个页面中的from参数。
if (from == "index")
{
Response.Redirect("WebIndex.aspx");
}
参数可以不同,并且可以绑定数据库中的数据
<a href="ArticleInfo.aspx?articid=<%#Eval("ArticleId")%>"> 超链接,articid是参数,后面是具体的数值。
b) 还可以传递多个参数 string articleid = Request.QueryString["articleid"]; 获取此页中articleid的值
this.Label1.Text = "要想留言请先登录<a href=Login.aspx?from=articleinfo&id=" + articleid + ">登录</a>";登录</a> 保存此页中articleid的值,并
将它的值附给id保存。在另一个页面就可访问
二、富文本编辑(特别重要)
kindedtor使用
1.将kindeditor文件夹拷贝到网站目录下,只选择我们需要的文件夹即可,可以删除asp,jsp,php三个文件夹,还有一些文件可以删除,但是没不要
2.添加对LitJSON.dll的引用,此文件默认在asp.net文件夹下bin文件夹下。//如果图片上传不去
3.新建自己的页面
4.将asp.net文件夹下的demo页面的内容拷贝过来,注意js文件以及css文件的引用位置是否发生变化
在web页面顶部的page标签中添加ValidateRequest="false"属性 //出现错误提示
在webconfig中添加<httpRuntime requestValidationMode="2.0"/>
5.将"label1"的visible属性设置false(目的是让从后来赋给内容不显示),此控件存在的唯一目的就是解决html编码的问题。因为默认我们从kindeditor中获取的内容中的html标签,如"<"等都已经被编码,这导致内容再次发送到前台后无法原样显示。
6.更改asp.net文件夹下的upload_json.ashx文件的内容,自定义上传文件的存储位置。方法是将第1行和第2行
String savePath = "../attached/";
String saveUrl = aspxUrl + "../attached/";
中的attached更改为自己创建的文件夹,如String savePath = "../upload/";
7.在此文件中还可控制上传文件的类型及大小等
8.在web页面中的Page_Load事件中添加如下代码
this.Label1.Text = Request.Form["content1"];
9.编写Button1按钮的单击事件,保存用户输入的内容,如写入文件或插入数据库
其中获取kindeditor内容应使用label1.text的方式获取,这样获取的是带有原样html标签的内容。
10.在kindeditor中设置宽度和高度以及不允许拖动改变大小
在K.options = {
中resizeType : 属性的值设置为0则不能拖动
三、数据绑定控件
GridView、DataList、Repeater控件,功能以此减小,灵活以此增加。最后翻译出的HTML均是Table控件。
Repeater控件:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<a href="ArticleInfo.aspx?articleid=<%#Eval("ArticleId")%>"><%#Eval("ArticleTitle")%></a>
</ItemTemplate>
</asp:Repeater>
输出的内容不会自动换行,所以要手动添加块级标签,例如:div ul等
DataList控件:
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate></ItemTemplate>
</asp:DataList>
输出内容可以自动换行。
四、其它
1、层的隐藏。当将层转换为服务器控件时,会有一个属性Visible,根据它的值(true,flase)来隐藏和展现层。
2、DropDownList绑定控件。
DataTable dt = new DataTable();
com.CommandText = "select * from T_ProductStyle ";
SqlDataAdapter adapter = new SqlDataAdapter(com);
adapter.Fill(dt);
从dt中读取数据绑定到DropDownList。
并没有用add方法。
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataValueField = "ProductStyleId";//绑定的字段
this.DropDownList1.DataTextField = "ProductStyleName";
this.DropDownList1.DataBind();
如果从数据库中调用即可不用add方法。
每一个数据绑定控件相同代码( this.DropDownList1.DataSource = dt;this.DropDownList1.DataBind();)