初学者的小小结

1. 如何读取系统时间
   
DateTime dateNow=DateTime.Now;
string P_UpdateTime=dateNow.ToString();


=================

2.在类中获得当前 HTTP 请求的 HttpContext 对象的引用,如:RequestResponse 和 Server 对象的访问

response 对应的类是 HttpResponse, 在 System.Web 命名字间里, 如果你在类中要使用 Response 的话, 需要使用 HttpContext.Current.Response 来取得 Response 对象

======================

3.在类中Server.MapPath,出错:缺少Server类所在的命名空间


在没有继承page的类中,应该这样写
HttpContext.Current.Server.MapPath

=========================


4.Response.write ,Response.redirect问题

Response.Write("<script language='JavaScript'>alert('公司资料成功!');</script>");
Response.Redirect ("O_Company.aspx");
这样写客户端不会执行JARASCRIPT

原因:在服务器端URL转向,当前页面马上停止执行。(用了它之后,你当前页面向客户端返回的代码不会返回,因为服务器还没返回代码给你,就已经停止执行了)Response.Write("<script language='javascript'> alert('公司资料成功!');</script>");
只有当页面重载的时候才会执行~~~~

建议你这样写:
Response.Write("<script language='javascript'> alert(/"您还没有登陆或者登陆已经超时!/");self.location.href='login.aspx';</script>");

Server.Transfer 和 Response.Redirect 区别很大的。

前者相当于在当前页面不跳转,继续执行新页面的代码,而且新页面可以访问到当前页面的所有公开信息(public的成员),有点像include的用法,但也不完全是。

后者就是在服务器端URL转向,当前页面马上停止执行。(用了它之后,你当前页面向客户端返回的代码不会返回,因为服务器还没返回代码给你,就已经停止执行了)


===============

5.在ASPX中截取字符串

英文的:
.cs文件
 public string GetSub(object obj)
  {
   string str=obj.ToString();
   if(str.Length<=22) return str;
   return str.Substring(0,22)+"...";
  }

.相应的.aspx文件
      <%# GetSub(Databinder(Container.DataItem,"a_title"))%>


6.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PageIndexChanged事件和ItemCommand事件同时存在问题

pageindex 也是属于DataGridItemCommand里面的
所以你要在你的函数体里面添加判断语句if(e.CommandName != "Page") 来区分是不是分页命令
private void DG_MarketCond_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   DG_MarketCond.CurrentPageIndex=e.NewPageIndex;
   DG_DataBind();
  }

  private void DG_MarketCond_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   if(e.CommandName!="Page")
   {
    DateTime dt=DateTime.Now;
    string M_Time=dt.ToString();
    string sql_update="update MarketCondition set M_Time='"+M_Time+"' where M_ID="+e.Item.Cells[0].Text;
    chinaAgent.dataAccess.ExecuteSql(sql_update);
    DG_DataBind();
   }
  }
++++++++++++++++++++++++++++++++++++++++++++++++++++

7. 怎样动态生成网页的标题?

前台:
<title id="titletxt" runat="server"><title>

后台:
protected System.Web.UI.HtmlControls.HtmlGenericControl titletxt;
titletxt = "XXXXX";


==================================

9.生成模板页

public static bool WriteFile(string strText,string strContent,string strAuthor)
  {
   string path = HttpContext.Current.Server.MapPath("/news/");
   Encoding code = Encoding.GetEncoding("gb2312");
   // 读取模板文件
   string temp = HttpContext.Current.Server.MapPath("/news/text.html");
   StreamReader sr=null;
   StreamWriter sw=null;
   string str=""; 
   try
   {
    sr = new StreamReader(temp, code);
    str = sr.ReadToEnd(); // 读取文件
   }
   catch(Exception exp)
   {
    HttpContext.Current.Response.Write(exp.Message);
    HttpContext.Current.Response.End();
    sr.Close();
   }
 
  
   string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
   // 替换内容
   // 这时,模板文件已经读入到名称为str的变量中了
   str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle
   str = str.Replace("biaoti",strText);
   str = str.Replace("content",strContent);
   str = str.Replace("author",strAuthor);
   // 写文件
   try
   {
    sw = new StreamWriter(path + htmlfilename , false, code);
    sw.Write(str);
    sw.Flush();
   }
   catch(Exception ex)
   {
    HttpContext.Current.Response.Write(ex.Message);
    HttpContext.Current.Response.End();
   }
   finally
   {
    sw.Close();
   }
   return true;

此函数放在Conn.CS基类中了
在添加新闻的代码中引用 注:工程名为Hover
 
    if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
    {
     Response.Write("添加成功");
    }
    else
    {
     Response.Write("生成HTML出错!");
    }
------------------
模板页Text.html代码
-------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 <HEAD>
  <title>ShowArticle</title>
 
 <body>

 biaoti
 <br>
 content<br>
 author
 </body>
</HTML>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值