精华内容
下载资源
问答
  • 一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。1. 打开新的窗口并传送参数: 传送参数:response....

     一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。

    1. 打开新的窗口并传送参数:

      传送参数:

    response.write("<script>window.open
    ('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")

      接收参数:

    string a = Request.QueryString("id");
    string b = Request.QueryString("id1");

    2.为按钮添加对话框

    Button1.Attributes.Add("onclick","return confirm('确认?')");
    button.attributes.add("onclick","if(confirm('are you sure...?'))
    {return true;}else{return false;}")

    3.删除表格选定记录

    int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
    string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()

    4.删除表格记录警告

    private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
    {
    switch(e.Item.ItemType)
    {
    case ListItemType.Item :
    case ListItemType.AlternatingItem :
    case ListItemType.EditItem:
    TableCell myTableCell;
    myTableCell = e.Item.Cells[14];
    LinkButton myDeleteButton ;
    myDeleteButton = (LinkButton)myTableCell.Controls[0];
    myDeleteButton.Attributes.Add
    ("onclick","return confirm('您是否确定要删除这条信息');");
    break;
    default:
    break;
    }
    }

    5.点击表格行链接另一页

    private void grdCustomer_ItemDataBound
    (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //点击表格打开
    if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
    e.Item.Attributes.Add("onclick","window.open
    ('Default.aspx?id=" + e.Item.Cells[0].Text + "');");
    }

      双击表格连接到另一页,在itemDataBind事件中

    if(e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
    {
    string OrderItemID =e.item.cells[1].Text;
    ...
    e.item.Attributes.Add("ondblclick",
    "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
    }

      双击表格打开新一页

    if(e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
    {
    string OrderItemID =e.item.cells[1].Text;
    ...
    e.item.Attributes.Add("ondblclick",
    "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
    }

      ★特别注意:【?id=】 处不能为 【?id =】

    6.表格超连接列传递参数

    <asp:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id"
    NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "数据字段1")%>'
    & name='<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>' />

    7.表格点击改变颜色

    if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';
    this.style.color='buttontext';this.style.cursor='default';");
    }

    写在DataGrid的_ItemDataBound里

    if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';
    this.style.color='buttontext';this.style.cursor='default';");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';");
    }

    8.关于日期格式

      日期格式设定

    DataFormatString="{0:yyyy-MM-dd}"

      我觉得应该在itembound事件中

    e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))

    9.获取错误信息并到指定页面

      不要使用Response.Redirect,而应该使用Server.Transfer

    // in global.asax
    protected void Application_Error(Object sender, EventArgs e) {
    if (Server.GetLastError() is HttpUnhandledException)
    Server.Transfer("MyErrorPage.aspx");
    //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)
    }

      Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

    10.清空Cookie

    Cookie.Expires=[DateTime];
    Response.Cookies("UserName").Expires = 0

    11.自定义异常处理

    //自定义异常处理类
    using System;
    using System.Diagnostics;
    namespace MyAppException
    {
    /// <summary>
    /// 从系统异常类ApplicationException继承的应用程序异常处理类。
    /// 自动将异常内容记录到Windows NT/2000的应用程序日志
    /// </summary>
    public class AppException:System.ApplicationException
    {
    public AppException()
    {
    if (ApplicationConfiguration.EventLogEnabled)
    LogEvent("出现一个未知错误。");
    }
    public AppException(string message)
    {
    LogEvent(message);
    }
    public AppException(string message,Exception innerException)
    {
    LogEvent(message);
    if (innerException != null)
    {
    LogEvent(innerException.Message);
    }
    }
    //日志记录类
    using System;
    using System.Configuration;
    using System.Diagnostics;
    using System.IO;
    using System.Text;
    using System.Threading;
    namespace MyEventLog
    {
    /// <summary>
    /// 事件日志记录类,提供事件日志记录支持
    /// <remarks>
    /// 定义了4个日志记录方法 (error, warning, info, trace)
    /// </remarks>
    /// </summary>
    public class ApplicationLog
    {
    /// <summary>
    /// 将错误信息记录到Win2000/NT事件日志中
    /// <param name="message">需要记录的文本信息</param>
    /// </summary>
    public static void WriteError(String message)
    {
    WriteLog(TraceLevel.Error, message);
    }
    /// <summary>
    /// 将警告信息记录到Win2000/NT事件日志中
    /// <param name="message">需要记录的文本信息</param>
    /// </summary>
    public static void WriteWarning(String message)
    {
    WriteLog(TraceLevel.Warning, message);
    }
    /// <summary>
    /// 将提示信息记录到Win2000/NT事件日志中
    /// <param name="message">需要记录的文本信息</param>
    /// </summary>
    public static void WriteInfo(String message)
    {
    WriteLog(TraceLevel.Info, message);
    }
    /// <summary>
    /// 将跟踪信息记录到Win2000/NT事件日志中
    /// <param name="message">需要记录的文本信息</param>
    /// </summary>
    public static void WriteTrace(String message)
    {
    WriteLog(TraceLevel.Verbose, message);
    }
    /// <summary>
    /// 格式化记录到事件日志的文本信息格式
    /// <param name="ex">需要格式化的异常对象</param>
    /// <param name="catchInfo">异常信息标题字符串.</param>
    /// <retvalue>
    /// <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
    /// </retvalue>
    /// </summary>
    public static String FormatException(Exception ex, String catchInfo)
    {
    StringBuilder strBuilder = new StringBuilder();
    if (catchInfo != String.Empty)
    {
    strBuilder.Append(catchInfo).Append("/r/n");
    }
    strBuilder.Append(ex.Message).Append("/r/n").Append(ex.StackTrace);
    return strBuilder.ToString();
    }
    /// <summary>
    /// 实际事件日志写入方法
    /// <param name="level">要记录信息的级别(error,warning,info,trace).</param>
    /// <param name="messageText">要记录的文本.</param>
    /// </summary>
    private static void WriteLog(TraceLevel level, String messageText)
    {
    try
    {
    EventLogEntryType LogEntryType;
    switch (level)
    {
    case TraceLevel.Error:
    LogEntryType = EventLogEntryType.Error;
    break;
    case TraceLevel.Warning:
    LogEntryType = EventLogEntryType.Warning;
    break;
    case TraceLevel.Info:
    LogEntryType = EventLogEntryType.Information;
    break;
    case TraceLevel.Verbose:
    LogEntryType = EventLogEntryType.SuccessAudit;
    break;
    default:
    LogEntryType = EventLogEntryType.SuccessAudit;
    break;
    }
    EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
    //写入事件日志
    eventLog.WriteEntry(messageText, LogEntryType);
    }
    catch {} //忽略任何异常
    }
    } //class ApplicationLog
    }

    12.Panel 横向滚动,纵向自动扩展

    <asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>

    13.回车转换成Tab

    <script language="javascript" for="document" event="onkeydown">
    if(event.keyCode==13 && event.srcElement.type!='button' &&
    event.srcElement.type!='submit' && event.srcElement.type!='reset'
    && event.srcElement.type!=''&& event.srcElement.type!='textarea');
    event.keyCode=9;
    </script>
    οnkeydοwn="if(event.keyCode==13) event.keyCode=9"

    14.DataGrid超级连接列

    DataNavigateUrlField="字段名" DataNavigateUrlFormatString=http://xx/inc/delete.aspx?ID={0}

    15.DataGrid行随鼠标变色

    private void DGzf_ItemDataBound
    (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType!=ListItemType.Header)
    {
    e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=
    /""+e.Item.Style["BACKGROUND-COLOR"]+"/"");
    e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=/""+ "#EFF3F7"+"/"");
    }
    }

    16.模板列

    <ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
    <ITEMTEMPLATE>
    <ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem,
    "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
    </ITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>
    <ASP:TEMPLATECOLUMN headertext="选中">
    <HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE>
    <ITEMTEMPLATE>
    <ASP:CHECKBOX id="chkExport" runat="server" />
    </ITEMTEMPLATE>
    <EDITITEMTEMPLATE>
    <ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />
    </EDITITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

      后台代码

    protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
    {
    //改变列的选定,实现全选或全不选。
    CheckBox chkExport ;
    if( CheckAll.Checked)
    {
    foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    chkExport.Checked = true;
    }
    }
    else
    {
    foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    chkExport.Checked = false;
    }
    }
    }

    17.数字格式化

    【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】
    <%#Container.DataItem("price","{0:¥#,##0.00}")%>
    int i=123456;
    string s=i.ToString("###,###.00");

    18.日期格式化

    【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
    显示为: 2004-8-11 19:44:28
    我只想要:2004-8-11 】

    <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>

    应该如何改?

    【格式化日期】
    取出来,一般是object
    ((DateTime)objectFromDB).ToString("yyyy-MM-dd");

    【日期的验证表达式】

    A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

    ^((/d{2}(([02468][048])|([13579][26]))[/-///s]?((((0?[13578])|(1[02]))
    [/-///s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|
    ([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|([1-2][0-9])))))|(/d{2}(([02468]
    [1235679])|([13579][01345789]))[/-///s]?((((0?[13578])|(1[02]))[/-///s]
    ?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[/-///s]?((0?[1-9])|
    ([1-2][0-9])|(30)))|(0?2[/-///s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))
    (/s(((0?[1-9])|(1[0-2]))/:([0-5][0-9])((/s)|(/:([0-5][0-9])/s))
    ([AM|PM|am|pm]{2,2})))?$

    B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03]

    ^/d{4}[/-///s]?((((0[13578])|(1[02]))[/-///s]?(([0-2][0-9])|(3[01])))|
    (((0[469])|(11))[/-///s]?(([0-2][0-9])|(30)))|(02[/-///s]?[0-2][0-9]))$

    【大小写转换】

    HttpUtility.HtmlEncode(string);
    HttpUtility.HtmlDecode(string)

    19.如何设定全局变量

      Global.asax中
      Application_Start()事件中
      添加Application[属性名] = xxx;
      就是你的全局变量

    20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?

      HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")

      【ASPNETMENU】点击菜单项弹出新窗口
      在你的menuData.xml文件的菜单项中加入URLTarget="_blank"
      如:

    <?xml version="1.0" encoding="GB2312"?>
    <MenuData ImagesBaseURL="images/">
    <MenuGroup>
    <MenuItem Label="内参信息" URL="Infomation.aspx" >
    <MenuGroup ID="BBC">
    <MenuItem Label="公告信息" URL="Infomation.aspx"
    URLTarget="_blank" LeftIcon="file.gif"/>
    <MenuItem Label="编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" />
    ......

      最好将你的aspnetmenu升级到1.2版

    21.读取DataGrid控件TextBox值

    foreach(DataGrid dgi in yourDataGrid.Items)
    {
    TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
    tb.Text....
    }

    22.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?

      〖思归〗

    <asp:TemplateColumn HeaderText="数量">
    <ItemTemplate>
    <asp:TextBox id="ShuLiang" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'
    οnkeyup="javascript:DoCal()"
    /> <asp:RegularExpressionValidator id="revS" runat="server"
    ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^/d+$" />
    </ItemTemplate>
    </asp:TemplateColumn> <asp:TemplateColumn HeaderText="单价">
    <ItemTemplate>
    <asp:TextBox id="DanJian" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
    οnkeyup="javascript:DoCal()"
    /> <asp:RegularExpressionValidator id="revS2" runat="server"
    ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^/d+(/./d*)?$" /> </ItemTemplate>
    </asp:TemplateColumn> <asp:TemplateColumn HeaderText="金额">
    <ItemTemplate>
    <asp:TextBox id="JinE" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
    </ItemTemplate>
    </asp:TemplateColumn>
    <script language="javascript">
    function DoCal()
    {
    var e = event.srcElement;
    var row = e.parentNode.parentNode;
    var txts = row.all.tags("INPUT");
    if (!txts.length || txts.length < 3)
    return;
    var q = txts[txts.length-3].value;
    var p = txts[txts.length-2].value;
    if (isNaN(q) || isNaN(p))
    return;
    q = parseInt(q);
    p = parseFloat(p);
    txts[txts.length-1].value = (q * p).toFixed(2);
    }
    </script>

    23.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了

    page_load
    page.smartNavigation=true

    24.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?

    private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
    {
    for(int i=0;i<e.Item.Cells.Count-1;i++)
    if(e.Item.ItemType==ListItemType.EditType)
    {
    e.Item.Cells[i].Attributes.Add("Width", "80px")
    }
    }

    25.对话框

    private static string ScriptBegin = "<script language=/"JavaScript/">";
    private static string ScriptEnd = "</script>";
    public static void ConfirmMessageBox(string PageTarget,string Content)
    {
    string ConfirmContent="var retValue=window.confirm('"+Content+"');"+"if(retValue){window.location='"+PageTarget+"';}";
    ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
    Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
    ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
    //Response.Write(strScript);
    }

    展开全文
  • 一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。 1. 打开新的窗口并传送参数:  传送参数: ...
    一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。

    1. 打开新的窗口并传送参数:

      传送参数:

    response.write("<script>window.open
    ('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")

      接收参数:

    string a  = Request.QueryString("id");
    string b  = Request.QueryString("id1");

    2.为按钮添加对话框

    Button1.Attributes.Add("onclick","return confirm('确认?')");
    button.attributes.add("onclick","if(confirm('are you sure...?'))
    {return true;}else{return false;}")

    3.删除表格选定记录

    int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
    string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()

    4.删除表格记录警告

    private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
    {
     switch(e.Item.ItemType)
     {
      case ListItemType.Item :
      case ListItemType.AlternatingItem :
      case ListItemType.EditItem:
        TableCell myTableCell;
        myTableCell = e.Item.Cells[14];
        LinkButton myDeleteButton ;
        myDeleteButton = (LinkButton)myTableCell.Controls[0];
        myDeleteButton.Attributes.Add
    ("onclick","return confirm('您是否确定要删除这条信息');");
        break;
      default:
       break;
     }
    }

    5.点击表格行链接另一页

    private void grdCustomer_ItemDataBound
    (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //点击表格打开
    if (e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
     e.Item.Attributes.Add("onclick","window.open
    ('Default.aspx?id=" + e.Item.Cells[0].Text + "');");
    }

      双击表格连接到另一页,在itemDataBind事件中

    if(e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
       {
    string OrderItemID =e.item.cells[1].Text;
    ...
    e.item.Attributes.Add("ondblclick",
    "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
    }

      双击表格打开新一页

    if(e.Item.ItemType == ListItemType.Item ||
    e.Item.ItemType == ListItemType.AlternatingItem)
       {
    string OrderItemID =e.item.cells[1].Text;
    ...
    e.item.Attributes.Add("ondblclick",
    "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
    }

      ★特别注意:【?id=】 处不能为 【?id =】

    6.表格超连接列传递参数

    <asp:HyperLinkColumn Target="_blank"  headertext="ID号" DataTextField="id"
    NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "数据字段1")%>'
      & name='<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>' />

    7.表格点击改变颜色

    if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
    {
      e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';
    this.style.color='buttontext';this.style.cursor='default';");
    }

    写在DataGrid的_ItemDataBound里

    if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
    {
      e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';
    this.style.color='buttontext';this.style.cursor='default';");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';");
    }

    8.关于日期格式

      日期格式设定

    DataFormatString="{0:yyyy-MM-dd}"

      我觉得应该在itembound事件中

    e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))

    9.获取错误信息并到指定页面

      不要使用Response.Redirect,而应该使用Server.Transfer

    // in global.asax
    protected void Application_Error(Object sender, EventArgs e) {
      if (Server.GetLastError() is HttpUnhandledException)
          Server.Transfer("MyErrorPage.aspx");
    //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)
    }

      Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

    10.清空Cookie

    Cookie.Expires=[DateTime];
    Response.Cookies("UserName").Expires = 0

    11.自定义异常处理

    //自定义异常处理类
    using System;
    using System.Diagnostics;
    namespace MyAppException
    {
     /// <summary>
     /// 从系统异常类ApplicationException继承的应用程序异常处理类。
     /// 自动将异常内容记录到Windows NT/2000的应用程序日志
     /// </summary>
     public class AppException:System.ApplicationException
     {
      public AppException()
      {
       if (ApplicationConfiguration.EventLogEnabled)
        LogEvent("出现一个未知错误。");
      }
      public AppException(string message)
      {
       LogEvent(message);
      }
      public AppException(string message,Exception innerException)
      {
       LogEvent(message);
       if (innerException != null)
       {
        LogEvent(innerException.Message);
       }
      }
    //日志记录类
    using System;
    using System.Configuration;
    using System.Diagnostics;
    using System.IO;
    using System.Text;
    using System.Threading;
    namespace MyEventLog
    {
     /// <summary>
     ///     事件日志记录类,提供事件日志记录支持
     ///     <remarks>
     ///         定义了4个日志记录方法 (error, warning, info, trace)
     ///     </remarks>
     /// </summary>
     public class ApplicationLog
     {
         /// <summary>
      ///     将错误信息记录到Win2000/NT事件日志中
      ///     <param name="message">需要记录的文本信息</param>
      /// </summary>
      public static void WriteError(String message)
      {
       WriteLog(TraceLevel.Error, message);
      }       
      /// <summary>
      ///     将警告信息记录到Win2000/NT事件日志中
      ///     <param name="message">需要记录的文本信息</param>
      /// </summary>
      public static void WriteWarning(String message)
      {
       WriteLog(TraceLevel.Warning, message);
      }       
      /// <summary>
      ///     将提示信息记录到Win2000/NT事件日志中
      ///     <param name="message">需要记录的文本信息</param>
      /// </summary>
      public static void WriteInfo(String message)
      {
       WriteLog(TraceLevel.Info, message);
      }
      /// <summary>
      ///     将跟踪信息记录到Win2000/NT事件日志中
      ///     <param name="message">需要记录的文本信息</param>
      /// </summary>
      public static void WriteTrace(String message)
      {  
       WriteLog(TraceLevel.Verbose, message);
      }       
      /// <summary>
      ///    格式化记录到事件日志的文本信息格式
      ///     <param name="ex">需要格式化的异常对象</param>
      ///     <param name="catchInfo">异常信息标题字符串.</param>
      ///     <retvalue>
      ///         <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
      ///     </retvalue>
      /// </summary>
      public static String FormatException(Exception ex, String catchInfo)
      {
       StringBuilder strBuilder = new StringBuilder();
       if (catchInfo != String.Empty)
       {
        strBuilder.Append(catchInfo).Append("\r\n");
       }
       strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace);
       return strBuilder.ToString();
      }
      /// <summary>
      ///     实际事件日志写入方法
      ///     <param name="level">要记录信息的级别(error,warning,info,trace).</param>
      ///     <param name="messageText">要记录的文本.</param>
      /// </summary>
      private static void WriteLog(TraceLevel level, String messageText)
      {  
       try
       {  
        EventLogEntryType LogEntryType;
        switch (level)
        {
         case TraceLevel.Error:
          LogEntryType = EventLogEntryType.Error;
          break;
         case TraceLevel.Warning:
          LogEntryType = EventLogEntryType.Warning;
          break;
         case TraceLevel.Info:
          LogEntryType = EventLogEntryType.Information;
          break;
         case TraceLevel.Verbose:
          LogEntryType = EventLogEntryType.SuccessAudit;
          break;
         default:
          LogEntryType = EventLogEntryType.SuccessAudit;
          break;
        }   
        EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName,         ApplicationConfiguration.EventLogSourceName );
        //写入事件日志
        eventLog.WriteEntry(messageText, LogEntryType);
       }
       catch {} //忽略任何异常
      }   
     } //class ApplicationLog
    }

    12.Panel 横向滚动,纵向自动扩展

    <asp:panel  style="overflow-x:scroll;overflow-y:auto;"></asp:panel>

    13.回车转换成Tab

    <script language="javascript" for="document" event="onkeydown">
    if(event.keyCode==13 && event.srcElement.type!='button' &&
    event.srcElement.type!='submit' && event.srcElement.type!='reset'
    && event.srcElement.type!=''&& event.srcElement.type!='textarea');
    event.keyCode=9;
    </script>
    οnkeydοwn="if(event.keyCode==13) event.keyCode=9"

    14.DataGrid超级连接列

    DataNavigateUrlField="字段名" DataNavigateUrlFormatString=http://xx/inc/delete.aspx?ID={0}

    15.DataGrid行随鼠标变色

     private void DGzf_ItemDataBound
    (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       if (e.Item.ItemType!=ListItemType.Header)
       {
        e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=
    \""+e.Item.Style["BACKGROUND-COLOR"]+"\"");
        e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+ "#EFF3F7"+"\"");
       }  
      }

    16.模板列

     <ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
     <ITEMTEMPLATE>
      <ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem,
    "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
     </ITEMTEMPLATE>
     </ASP:TEMPLATECOLUMN>
    <ASP:TEMPLATECOLUMN headertext="选中">
     <HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE>
     <ITEMTEMPLATE>
      <ASP:CHECKBOX id="chkExport" runat="server" />
     </ITEMTEMPLATE>
     <EDITITEMTEMPLATE>
     <ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />
     </EDITITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

      后台代码

    protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
      {
       //改变列的选定,实现全选或全不选。
       CheckBox chkExport ;
       if( CheckAll.Checked)
       {
        foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
        {
         chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
         chkExport.Checked = true;
        }
       }
       else
       {
        foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
        {
         chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
         chkExport.Checked = false;
        }
       }
      }

    17.数字格式化

    【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】
    <%#Container.DataItem("price","{0:¥#,##0.00}")%>
    int i=123456;
    string s=i.ToString("###,###.00");

    18.日期格式化

    【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
     显示为: 2004-8-11 19:44:28
     我只想要:2004-8-11 】

    <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>

    应该如何改?

    【格式化日期】
    取出来,一般是object
    ((DateTime)objectFromDB).ToString("yyyy-MM-dd");

    【日期的验证表达式】

    A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] 

    ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))
    [\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|
    ([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468]
    [1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]
    ?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|
    ([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))
    (\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))
    ([AM|PM|am|pm]{2,2})))?$

    B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] 

    ^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|
    (((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$

    【大小写转换】

    HttpUtility.HtmlEncode(string);
    HttpUtility.HtmlDecode(string)

    19.如何设定全局变量

      Global.asax中
      Application_Start()事件中
      添加Application[属性名] = xxx;
      就是你的全局变量

    20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口?

      HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank")

      【ASPNETMENU】点击菜单项弹出新窗口
      在你的menuData.xml文件的菜单项中加入URLTarget="_blank"
      如:

    <?xml version="1.0" encoding="GB2312"?>
    <MenuData ImagesBaseURL="images/">
      <MenuGroup>
        <MenuItem Label="内参信息" URL="Infomation.aspx" >
          <MenuGroup ID="BBC">
            <MenuItem Label="公告信息"   URL="Infomation.aspx"
    URLTarget="_blank"  LeftIcon="file.gif"/>
            <MenuItem Label="编制信息简报" URL="NewInfo.aspx" LeftIcon="file.gif" />
    ......

      最好将你的aspnetmenu升级到1.2版

    21.读取DataGrid控件TextBox值

    foreach(DataGrid dgi in yourDataGrid.Items)
    {
        TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
        tb.Text....
    }

    22.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?

      〖思归〗

       <asp:TemplateColumn HeaderText="数量">
      <ItemTemplate>
       <asp:TextBox id="ShuLiang" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>' 
        οnkeyup="javascript:DoCal()"
       />  <asp:RegularExpressionValidator id="revS" runat="server"
    ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^\d+$" />
      </ItemTemplate>
          </asp:TemplateColumn>      <asp:TemplateColumn HeaderText="单价">
      <ItemTemplate>
       <asp:TextBox id="DanJian" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
        οnkeyup="javascript:DoCal()"
       />  <asp:RegularExpressionValidator id="revS2" runat="server"
    ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^\d+(\.\d*)?$" />  </ItemTemplate>
          </asp:TemplateColumn>     <asp:TemplateColumn HeaderText="金额">
      <ItemTemplate>
       <asp:TextBox id="JinE" runat='server'
    Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
      </ItemTemplate>
          </asp:TemplateColumn>
    <script language="javascript">
    function DoCal()
    {
      var e = event.srcElement;
      var row = e.parentNode.parentNode;
      var txts = row.all.tags("INPUT");
      if (!txts.length || txts.length < 3)
     return; 
      var q = txts[txts.length-3].value;
      var p = txts[txts.length-2].value;
      if (isNaN(q) || isNaN(p))
     return;
      q = parseInt(q);
      p = parseFloat(p);
      txts[txts.length-1].value = (q * p).toFixed(2);
    }
    </script>

    23.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了

    page_load
    page.smartNavigation=true

    24.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ?

    private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
    {
           for(int i=0;i<e.Item.Cells.Count-1;i++)
              if(e.Item.ItemType==ListItemType.EditType)
               {
                      e.Item.Cells[i].Attributes.Add("Width", "80px")
                }  
    }

    25.对话框

    private static string ScriptBegin = "<script language=\"JavaScript\">";
    private static string ScriptEnd = "</script>";
    public static void ConfirmMessageBox(string PageTarget,string Content)
      {
       string ConfirmContent="var retValue=window.confirm('"+Content+"');"+"if(retValue){window.location='"+PageTarget+"';}";   
       ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;   
       Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
       ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
       //Response.Write(strScript);  
      }

    转载于:https://www.cnblogs.com/Runinboy/archive/2007/06/20/790516.html

    展开全文
  • CSS备忘录

    2013-05-07 21:08:12
    这个小效果被很多网页制作者使用,的确很实用,并能为页面增添不少生气。 鼠标移动到链接上文字下沉效果的制作方法 来源:黄超 [点击放大] 最早看到这个效果的时候感到很神奇,想不到是什么这个下沉...

    一、鼠标移动到链接上文字下沉效果的制作方法

    当鼠标移动到链接上时,链接文本(或图片)会出现下沉的效果,好像链接的小手图标将它按下去一样。这个小效果被很多网页制作者使用,的确很实用,并能为页面增添不少生气。 
    鼠标移动到链接上文字下沉效果的制作方法[点击放大]
    鼠标移动到链接上文字下沉效果的制作方法 来源:黄超
    最早看到这个效果的时候感到很神奇,想不到是什么这个下沉效果是利用什么原理和代码制作的,经过对别人网页源代码的“借鉴”,我终于恍然大悟——原来它是使用了“相对定位+hover伪类”让其产生位移这个简单的方法制作的!  它的效果简单,原理简单,代码更简单,如果需要将网站或某个页面的链接全部制成下沉效果,只需要在CSS加上一句即可:  
    a:hover { position:relative; top:1px; left:1px; }
    只要将这段CSS加入到应用的CSS文件中,链接就可以在鼠标悬浮时出现下沉效果了,现在你就可以试试了。
    展开全文
  • 降价备忘录 这个项目的目的是使写作更容易和更有效率。 因此,您想编写一个文档。 也许您会在网络上分享它。 也许您想要一个精美的pdf。 也许是博客,研究论文,草稿或只是一组注释。 您不想考虑排版细节。 您只想...
  • 搜索优化之友好的网页设计制作

    千次阅读 2014-01-02 11:29:59
    设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期看获得搜索引擎排名优秀的贸易网站来说,已经远远不够了,网站策划职员至少应该为设计师递交一份需求备忘录网页设计中需要配合和留意的环节。...
    对搜索引擎友好的网页设计制作,一般的网页设计都由网页设计师完成。设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期看获得搜索引擎排名优秀的贸易网站来说,已经远远不够了,网站策划职员至少应该为设计师递交一份需求备忘录,网页设计中需要配合和留意的环节。


      一、目录结构和URL


      URL是同一资源定位,即每个网页的网址、路径。网站文件的目录结构直接体现于URL。清楚简短的目录结构和规范的命名不仅有利于用户体验和网址传播,更是搜索引擎友好的体现。


      二、目录层次:


      对于一个小型网站来说,一般只有一层子目录,如下:www.yoursite/dir1/page.htm拆分一下www.yoursite 是域名dir1 是一级目录名page 是文件名。对搜索引擎而言,这种单一的目录结构最为理想,即扁平结(Flat)。而对规模大一些的网站,往往需要二到三层子目录。象这样:www.yoursite/dir1/dir2/dir3/page.htm。搜索引擎还是会往抓取二到三层子目录下的文件,但最好不要超过3层,假如超过4层,象以下这个页面,搜索引擎就很难往搜索它了:www.yoursite/dir1/dir2/dir3/dir4/page.h tm。


      当然,以下情况下,即使深进第四层甚至更深层次的页面,也同样能被搜索到:


      1、假如该页提供了重要内容,有大量来自其它网站的外部链接(Inbound Links);


      2、假如在首页上增加一个该页的链接,可以通过首页直接到达,搜索 Spider 还是可以轻易地找到它;


      3、假如有其它网站在顶级页面上链接了该页,其效果就好似你在自己的首页上做了该链接。


      此外,图形、脚本、CGI-BIN和 CSS样式表则各自建立专门的目录收进其中,一般不放在根目录下。


      三、目录和文件命名:


      根据关键字无所不在的原则,可以在目录名称和文件名称中使用到关键词。但假如是关键词组,则需要用分隔符分开。我们常用连字符“-”和下划线“_”进行分隔,URL 中还经常出现空格码“ ”。因此,假如以“中国制造”作文件名,就可能出现以下三种分隔形式:A、made-in-china.htm ;B、made_in_china.htm ;C、made in china.htm


      URL应该越短越好。有人为了单纯增加关键字而额外建多一个带有关键字的子目录,改变目录结构。由于 URL 中含有关键字本身对排名进步帮助并不大,因而这种做法多此一举,也是搜索引擎反感的。


      四、尽对URL和相对URL:


      尽对URL:即网 页路径使用包含顶级域名在内的完整 的URL 。如:www.yoursite/page1/index.html 是一个尽对路径,其中/page1/index.html 则为相对 路径,由浏览器自动在该链接前加上www.yoursite。总体上,Google 在排名时并不在意 URL 使用的是相对路径还是尽对路径。


      动态URL:前很多网站都有数据库驱动天生的URL,即动态URL,往往表现为在URL中出现“?”、“=”、“%”,以及“&”、“$”等字符,动态 URL 不利于搜索引擎抓取网页会影响网站排名,通常是通过技术解决方案将动态URL转化成静态的URL形式如:将 www.domain/messages.php?id=2&type=5转化为 www.domain/messages/2/5/


      五、导航结构:


      网站导航是对引导用户访问网站的的栏目、菜单、在线帮助、布局结构等形式的统称,其主要功能在于引导用户方便地访问网站内容,是评价网站专业度、可用度的重要指标,同时对搜索引擎也产生诸多提示作用。概括地讲,网站在导航方面应留意以下几点:


      1、主导航醒目清楚:主导航一般体现为一级目录,通过它们用户和蜘蛛程序都可以层层深进访问到网站所有重要内容。因此主栏目必须在网站首页第一屏的醒目位置体现,并最好采用文本链接而不是图片。


      2、“面包屑型 Breadcrumbs)”路径:所谓“面包屑”是比喻用户通过主导航到目标网页的访问过程中的路径提示,使用户了解所处网站中的位置而不至于迷失“方向”,并方便回到上级页面和出发点。路径中的每个栏目最好添加链接。如下:时代营销:首页 > 网络营销动态 > 特别报道。即使没有具体的路径来源,也至少应该在每个子页面提示回首页的链接,包括页面的 LOGO作链接。


      3、首页突出重要内容:除了主栏目,还应该将次级目录中的重要内容以链接的方式在首页或其它子页中多次呈现,以突出重点。搜索引擎会对这种一站内多次出现的链接给予充分重视,对网页级别(PageRank)进步有很大帮助,这也是每个网站首页的网页级别一般高于其它页面级别的重要因素9U8U网页游戏门户|http://www.9u8u.com/,由于每个子页都对首页进行了链接。


      4、使用网站舆图:网站舆图(Site Map)是辅助导航的手段,最初是为用户设计,以方便用户快捷到达目标页。良好的网站舆图设计经常以网站拓扑结构体现复杂的目录关系,具有静态、直观、扁平、简单的特点。多采用文本链接,不用或少用修饰性图片,以加快页面加载速度。以上特点符合搜索引擎友好的要求,因此网站舆图在 SEO 中也有重要的意义。尤其对于那些采用图片导航和动态技术天生的网页,通过在网站舆图中进行文本链接,可在一定程度上弥补蜘蛛程序无法识别图片和动态网页造成的页面不可见的风险。


      需要留意,网站舆图也要突出重点,尽量给出主干性内容及链接,而不是所有细枝末节。一页内不适宜放太多链接。Google 明确提出“假如网站舆图上的链接超过大约 100 个,则最好将网站舆图拆成多个网页”。


      工具推荐:Xenu:home.snafu.de/tilman/xenulink.html 天生网站舆图


      六、框架结构:


      框架结构,即帧结构(Frame)网页表现为一个页面内的某一块保持固定,其它部分信息可以通过转动条上下或左右移动显示,如左边菜单固定,正文信息可移动,或者顶部导航和LOGO 部分保持固定,其它部分上下或左右移动。我们的邮箱通常都采用框架建构。框架型网页的另一个表现是,深层页面的域名通常不会在 URL 中体现出来,即使进进深层子页面,浏览器显示出来的URL仍然是主页的URL。


      框架型网站的优越性体现在页面的整体一致性和更新方便上。尤其对于那些大型网站而言,框架结构的使用可以使网站的维护变得相对轻易。但框架对搜索引擎来说是一个很大的题目,这是由于大多数搜索引擎都无法识别框架,也没有什么爱好往抓取框架中的内容。此外,某些浏览器也不支持框架页面。


      假如网页已经使用了框架,或出于某种原因一定要使用框架结构,则必须在代码中使用“Noframes”标签进行优化,把 Noframe 标签看做是一个普通文本内容的主页。在区域中包含指向 frame 页的链接以及带有关键词的描述文本,同时在框架以外的区域也出现关键词文本。这样,搜索引擎才能够正确索引到框架内的信息。


      还有一个办法是采用 iframe 即内联框架(Inner Frame)技术来避免 Frame 带来的不便。所谓 iframe 也是框架的一种形式,它是相当于在主浏览器窗口中内嵌一个子窗口,内容自动打开。iframe 可以嵌在网页中的任意部分,也可以随意定义其大小,其代码显示为: ” 对搜索引擎来说,iframe 中的文字是可见的,也可以跟踪到其中链接指向的页面,不过与用户所见不同的是,搜索引擎将 iframe 内容看成单独的一个页面内容,与被内嵌的页?**薰亍?


      七、图像优化:


      一般而言,搜索引擎只识读文本内容,对图像是不可见的。同时,图像文件直接延缓页面加载时间,假如超过 20 秒网站还不能加载,用户和搜索引擎极有可能离开你的网站。因此,除非你的网站内容是图片为主,比如游戏站点或者图片至关重要,否则尽量避免使用大图片,更不要采用纯图像制作网页 SPLASH PAGE)。网站图片优化的核心有两点:增加搜索引擎可见的文本描述,以及在保持图像质量的情况下尽量压缩图像的文件大小。


      八、Alt 属性:


      每个图像标签中都有 ALT 属性,搜索引擎会读取该属性以了解图像的信息。因此,最好在所有插图的 ALT 属性中都有文字描述,并带上该页关键字在其中。文本说明:除了 ALT 属性文字,还可以考虑以下方法直接优化图像,使之被搜索到:


      1、在图片上方或下方加上包含关键词的描述文本;


      2、在代码中增加一个包含关键词段的 heading 标题标签,然后在图片下方增加文字描述。


      3、在图片下方或旁边增加如“更多某某”链接,包含关键词。


      4、创建一些既吸引用户又吸引搜索引擎的文本内页,先把流量吸引到这些页面,再提供文本链接指向你的图片页面。


      总体上,网页应尽量减少装饰性图片以及大图片。而 Alt 属性中的文字对搜索引擎来说,其重要性比正文内容的文字要低。


      九、Gif和JPGE图像优化:


      Alt 属性和文本说明都只是对图像之外的文本环境进行优化,对图片本身的优化处理。对图片文件优化的目的是在尽量不影响图像画面效果的情况下,我们可以把K值设小,打开的速度就要快些了。将其文件大小降到最低,以加快页面整体下载速度。网页图片格式主要有 GIF 和 JPGE 两种形式。一般来讲,GIF 适用于线图和企业标识,JPEG 适宜照片元素的格式。主要通过减少 GIF 颜色数目、缩小图片尺寸和降低分辩率来缩小文件,也可以采用层叠样式表达到优化的目的。此外,将大图片切割成若干小图片于不同的格区间内进行拼接,也可以相对加快下载时间。


      FLASH 优化可以从以下三个方面来考虑:


      1、做一个辅助HTML版本:保存原有 FLASH 版本的同时,还可以设计一个 HTML 格式的版本,这样既可以保持动态美观效果,也可以让搜索引擎通过 HTML 版本的网页来发现网站。


      2、将Flash内嵌HTML文件:还可以通过改变网页结构进行弥补,即不要将整个网页都设计成 Flash 动画,而是将 Flash内容嵌进到 HTML 文件中,这样对于用户浏览并不会削弱视觉效果,搜索引擎也可以从 HTML代码中发现一些必要的信息,尤其是进进内容页面的链接。即使首页全部动用了 FLASH,也应该将进进内页的关键性按钮/链接置于 FLASH 文件之外,以独立纯文本链接的方式呈现。上文案例将“中文版”链接置于 FLASH 文件中,使得蜘蛛程序一无所获,无法抓取到内页信息。


      3、付费登录搜索引擎:假如FLASH网站错过了被免费的技术型搜索引擎自动检索的机会,或者搜索结果排名效果不太理想,可以通过付费登录或做搜索引擎关键词广告,同样被用户搜索到。


      总体上,贸易网站应尽量少用 FLASH,站点间进行广告交换时也要避免采用 FLASH 广?**喜摺?


      十、表格使用:


      表格是网页最重要的排版方式。假如某个网页采用了大段的长篇文本,除了可以将一页文天职成多面,还可以考虑将文本置进不同表格中,这样不仅治理方便,也使得该页加载时每个表格内容依次加载,这样访问者就可以一边看已下载内容一边等待剩余部分加载,而不是等待很久之后才一齐加载出来。表格之内套嵌太多表格也不利于页面加载,因浏览器是先加载完大表格之后再加载内嵌的小表格,因此内嵌表格会终极降低整页加载速度。


      十一、网页减肥:


      代码设置不妥不仅延长网页加载时间,也严重影响蜘蛛程序对网页内容的抓取。通过对网页代码进行清减(俗称“网页减肥”),往掉臃肿杂乱的代码,减小网页文件大小,能够加快网页加载速度,让蜘蛛快速索引到重要内容正常情况下一个页面的文件大小在 15K 左釉冬最好不要超过 50K。


      网页减肥重点涉及以下几个要点:


      CSS 样式:网页制作应通过 CSS(层叠样式表单)来同一定制字体风格,以使代码标准化,避免大量的字体和格式化标签如< h1 >< /h1 >、< font size ×× color ×× >< /font >充斥页面。通过 css 可以控制任何 HTML 标签的风格。例如
    ,
    ,
    ,,,
    等,只要在HTML的区内的之间指定对应标签的风格如字体,颜色,大小即可。通过设置,就把文字的字体、字号、颜色、背景色等同一起来,不用对每段文字单独进行格式定义从而减少大量重复性标签。留意把所有 css 文件单独存放在命名为 css 的外部文件中通过设置 CSS 样式,也可以提升导航文本的美观度,达到与图片导航同样优美观的效果,这点尤其提醒网页设计师留意,没有必要将导航条用图片呈现。


      JavaScript:正常情况下,网页尽量以作为代码的开始端。但采用JavaScript 技术的网页往往在页面一开始就堆积大量 JAVA 代码,以至 META 及关键字迟迟不能出现,被推至页面底部,对搜索引擎很不友好。有两种方法可以使之得以改善:


      1、将脚本移至页面底部:大部分的 JAVA 代码都可以移到页面结束标签之上,而不影响网站功能。这样就能一开始突出关键词,并加快页面加载时间。


      2、将 JAVA 脚本置进一个.js 扩展名的文件。包含你的 JavaScript 的.js 文件通常在网站访问者的浏览器中被缓存下来,使得下次访问速度加快,也使得网站修改和维护起来更加方便


      工具推荐:网页减肥工具:202.99.237.33/softdown/softdoc/net_opt.htm往除网页中多余代码,减小网页。
    展开全文
  • 设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期望获得搜索引擎排名优秀的商业网站来说,已经远远不够了,网站策划人员至少应该为设计师递交一份需求备忘录,提醒在设计中需要配合和注意的环...
  • 设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期望获得搜索引擎排名优秀的商业网站来说,已经远远不够了,网站策划人员至少应该为设计师递交一份需求备忘录,提醒在设计中需要配合和注意的环节。...
  • 设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期望获得搜索引擎排名优秀的商业网站来说,已经远远不够了,网站策划人员至少应该为设计师递交一份需求备忘录,提醒在设计中需要配合和注意的环节。...
  • 设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期望获得搜索引擎排名优秀的商业网站来说,已经远远不够了,网站策划人员至少应该为设计师递交一份需求备忘录,提醒在设计中需要配合和注意的环节。...
  • 今天介绍给大家是如何利用Google的在线表单和表格服务,制作单页面功能性的网页。例如可以制作一个个人记账页面...你也可以制作一个备忘录,通过定制的页面来添加备忘信息。下面先看一下我制作的记账页面的效果图: ...
  • .mno是什么文件

    2014-01-22 13:31:33
    .mno文件:它是一个由切图文件自动生成的切图信息,一般...可以为网页和图片加入注释,作为制作者的备忘录。这些注释不直接加入网页中,而是保存在网站的_notes目录中,扩展名为.mno文件中,文件名与网页文件名相同。
  • 它可以让你在线保存个人笔记 、知识档案、备忘录等资料,而且可以方便的对它们进行编辑、整理和分享!用开发团队的话来描述麦库 – 一个永久在线的安全的网络公文包。 麦库在哪些场合使用? 1、在麦库记录旅游...
  • 设计师设计网站往往仅从美观、创意和易用的角度考虑,这对于一个期望获得搜索引擎排名优秀的商业网站来说,已经远远不够了,网站策划人员至少应该为设计师递交一份需求备忘录,提醒在设计中需要配合和注意的环节。...
  • 电影播放 - Mplayer + w32codecs / Totem(系统自带) + xine音乐播放 - BansheeIM聊天 - Pidgin 2.0.0浏览器 - Firefox 2(系统自带) / Konqueror / Opera 9.2 / IE6.0(wine)图形编辑 - GIMP(系统自带)网页制作 - ...
  • 关于html转pdf

    2016-06-23 20:10:00
    能完美将一个站点中的页面(这里说一个站点中的页面是指非特意制作只包含简单html元素的网页)转换成pdf的很多都是收费的项目。 这里不讨论itextsharp,因为我们指明了源是html页面,itextsharp对html的支持比较...
  • setTimeout()和setInterval

    2019-04-04 09:35:14
    制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事。在JavaScript中主要通过定时器实现此类需求,特记录下来备忘。 一、setTimeout...
  • Eschool校园网平台

    2006-03-16 00:00:00
    6、学习园地:文字处理、电子表格、课件制作、网页制作、动画制作、图像处理等。 7、信息频道:航班查询、火车时刻表、邮编区号、精彩网站、视频点播、电子图书等。 8、校友频道:校友登记、校友查询。 9、...
  • 备忘录:可以记录当天代办事宜,配合备忘录提醒软件(外贸专家带的小工具)可以按设 定的提醒时间自动提醒。 业务进程:根据出口合同、购货合同和单证处理的数据,自动计算备货进度和出货进度 出货管理:分订单汇总...
  • 人力资源管理软件(完全免费)

    热门讨论 2011-03-08 11:36:20
    人力资源管理软件功能介绍 本人力资源软件包含人事档案管理 本人力资源软件包含工资管理 本人力资源软件包含考勤管理 本人力资源软件包含绩效管理 本人力资源软件包含用户管理 本人力资源软件软件界面美观,...
  • 实例148 日历备忘录 241 5.7 制作广告条 242 实例149 制作旗帜广告条 242 实例150 浮动广告 244 实例151 循环播放广告图片 246 5.8 控件连接数据源 248 实例152 通过向导配置AccessDataSource 248 实例153 通过向导...
  • 实例148 日历备忘录 241 5.7 制作广告条 242 实例149 制作旗帜广告条 242 实例150 浮动广告 244 实例151 循环播放广告图片 246 5.8 控件连接数据源 248 实例152 通过向导配置AccessDataSource 248 实例153 通过向导...
  • 实例148 日历备忘录 241 5.7 制作广告条 242 实例149 制作旗帜广告条 242 实例150 浮动广告 244 实例151 循环播放广告图片 246 5.8 控件连接数据源 248 实例152 通过向导配置AccessDataSource 248 实例153 通过向导...
  • 第1篇 流行组件应用篇 第1章 操作XML文件 1.1 XML基础操作 实例001 CSS格式化XML布局 实例002 CSS改变XML中鼠标指针形状 实例003 CSS在XML中添加背景图 实例004 CSS制作XML表格 实例005 XML中的提取节点字符...
  • 第1篇 ASP.NET网站高效开发篇 第1章 ASP.NET网站开发常备技术 1.1 即学即用的正则表达式 实例001 使用正则表达式验证电话号码 实例002 使用正则表达式验证输入密码条件 实例003 使用正则表达式验证邮政...
  • ✅ 相见易:允许用户在手机上、网页上自主设计表单、图表,存储和查询数据、网页与手机端的数据互通(演示用户:13510928305,密码:123456) ✅ 自由地呼吸:一款呼吸训练、规律动作训练+心事倾述+呼吸康复学堂,...
  • Java开发实战1200例.第2卷.part3

    热门讨论 2013-05-08 22:46:34
    实例004 CSS制作XML表格 8 实例005 XML中的提取节点字符串值 10 实例006 在XML内部定义DTD 12 实例007 在XML外部引用DTD 14 实例008 验证XML是否符合DTD的定义 15 实例009 在DTD中声明元素 16 实例010 在DTD中声明...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

网页制作备忘录