zoukankan      html  css  js  c++  java
  • ASP.NET程序编写注意 (转载)

     

     

    1.各个输入文本框添加是否为空的判断,不可为空;

     

    2.注意尽量符合命名规范;

     

    3.尽量做好注释,方便程序阅读和以后的修改;

     

    4.做好上传文件大小的限制;

     

    5.在编写前台代码时加上注释头文件,以方便二次修改;

     

    6.注意每个页面的title;

     

    7.注意前台显示字符串长度;

     

    8.需要输出显示时间的存储过程请将时间如下输出:

     

    CONVERT(varchar(10),AddTime,120) AS AddTime;

     

    9.需要在前台显示标题的存储过程,如果可能出现标题过长,导致页面变形的情况的话,可用如下存储过程输出文章标题

     

    case

     

    when len(NewsTitle)>20 then left(NewsTitle,20)+'...'

     

    when len(NewsTitle)<21 then NewsTitle

     

    end

     

    AS NewsTitle;

     

    或在前台输出时控制字数多少。

     

    10.注意输入标题的长度限制

     

    11.注意表格的强制换行

     

    12.写类似添加或修改的存储过程时注意被添加或修改的数据是否在表中已存在,如果已存在,则提示已有该数据,通过存储过程返回值来判断。

     

    13.为了维护方便起见,能在前台写的东西不要放到程序里去生成。比如链接、表格等...

     

    14.进行字符(反)替换,按原样显示。

     

    15.DataGrid选定列特殊样式显示。

     

    If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then

     

           e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#E4EDF9'")

     

           e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#F1F3F5'")

     

    End If

     

    16.用以下样式显示分页效果

     

    第 页/共 页 本页 条/共 条 首页 上一页 下一页 尾页

     

    前台代码如下:

     

    <asp:panel id="pnlPage" runat="server">

     

    <asp:Label id="lblPage" runat="server"></asp:Label>

     

    <asp:linkbutton id="lbtnFirst" onclick="LBtnNavigation_Click" runat="server" CommandName="First">首页</asp:linkbutton>

     

    <asp:linkbutton id="lbtnPrev" onclick="LBtnNavigation_Click" runat="server" CommandName="Prev">上一页</asp:linkbutton>&nbsp;

     

    <asp:linkbutton id="lbtnNext" onclick="LBtnNavigation_Click" runat="server" CommandName="Next">下一页</asp:linkbutton>&nbsp;

     

    <asp:linkbutton id="lbtnLast" onclick="LBtnNavigation_Click" runat="server" CommandName="Last">尾页</asp:linkbutton>&nbsp;

     

          转到

     

    <asp:TextBox id="txtToPage" runat="server" Width="25px" Height="20px" MaxLength="9"></asp:TextBox>页

     

    <asp:LinkButton id="lbnGO" runat="server">GO</asp:LinkButton>&nbsp;&nbsp;

     

    <asp:dropdownlist id="dlstPage" runat="server" AutoPostBack="True">

     

    <asp:ListItem Value="10">每页显示10条</asp:ListItem>

     

    <asp:ListItem Value="20" Selected="True">每页显示20条</asp:ListItem>

     

    <asp:ListItem Value="50">每页显示50条</asp:ListItem>

     

    <asp:ListItem Value="100">每页显示100条</asp:ListItem>

     

    </asp:dropdownlist></asp:panel>

     

    后台代码如下:

     

            Dim pageCount As Integer '总页数

     

            Dim recordCount As Integer '总条数

     

        

     

    #Region " 绑定分页 "

     

            Protected Sub BindData(ByVal DsetData As System.Data.DataSet)

     

                '获取当前的总记录条数

     

                recordCount = DsetData.Tables(0).Rows.Count

     

                '获取当前的页数

     

                pageCount = CInt(Math.Ceiling(recordCount * 1.0 / dgrdRegister.PageSize))

     

                '避免纪录从有到无时,并且已经进行过反页的情况下CurrentPageIndex > PageCount出错

     

                If recordCount = 0 Then

     

                    dgrdRegister.CurrentPageIndex = 0

     

                ElseIf dgrdRegister.CurrentPageIndex >= pageCount Then

     

                    dgrdRegister.CurrentPageIndex = pageCount - 1

     

                End If

     

                NavigationStateChange()

     

            End Sub

     

            '初始化页码按钮

     

            Protected Sub NavigationStateChange()

     

                If recordCount <= dgrdRegister.PageSize Then '( RecordCount <= PageSize )//小于等于一页

     

                    lbtnFirst.Enabled = False

     

                    lbtnPrev.Enabled = False

     

                    lbtnNext.Enabled = False

     

                    lbtnLast.Enabled = False

     

                Else '有多页

     

                    If dgrdRegister.CurrentPageIndex = 0 Then '当前为第一页

     

                        lbtnFirst.Enabled = False

     

                        lbtnPrev.Enabled = False

     

                        lbtnNext.Enabled = True

     

                        lbtnLast.Enabled = True

     

                    ElseIf dgrdRegister.CurrentPageIndex = pageCount - 1 Then '当前为最后页

     

                        lbtnFirst.Enabled = True

     

                        lbtnPrev.Enabled = True

     

                        lbtnNext.Enabled = False

     

                        lbtnLast.Enabled = False

     

                    Else '中间页

     

                        lbtnFirst.Enabled = True

     

                        lbtnPrev.Enabled = True

     

                        lbtnNext.Enabled = True

     

                        lbtnLast.Enabled = True

     

                    End If

     

                End If

     

     

     

                Dim intPageCount As Integer

     

                Dim intPageIndex As Integer

     

                Dim intPageSize As Integer

     

                Dim intRecordCount As Integer

     

     

     

                If recordCount = 0 Then '当没有纪录时DataGrid.PageCount会显示1页

     

                    intPageCount = 0

     

                    intPageIndex = 0

     

                    intPageSize = 0

     

                    intRecordCount = 0

     

                Else

     

                    intPageCount = pageCount

     

                    intPageIndex = dgrdRegister.CurrentPageIndex + 1 '在有页数的情况下前台显示页数加1

     

                    If intPageIndex = pageCount Then

     

                        intPageSize = recordCount - (pageCount - 1) * dgrdRegister.PageSize

     

                    Else

     

                        intPageSize = dgrdRegister.PageSize

     

                    End If

     

                    intRecordCount = recordCount

     

                End If

     

     

     

                lblPage.Text = "第" & intPageIndex & "页/共" & intPageCount & "页 本页" & intPageSize & "条/共" & intRecordCount & "条"

     

     

     

            End Sub

     

            '翻页

     

            Protected Sub LBtnNavigation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

     

     

     

                Dim btn As LinkButton = CType(sender, LinkButton)

     

                Select Case btn.CommandName

     

                    Case "First"

     

                        dgrdRegister.CurrentPageIndex = 0

     

                    Case "Prev" 'if( PageIndex > 0 )

     

                        dgrdRegister.CurrentPageIndex = dgrdRegister.CurrentPageIndex - 1

     

                    Case "Next" 'if( PageIndex < PageCount -1)

     

                        dgrdRegister.CurrentPageIndex = dgrdRegister.CurrentPageIndex + 1

     

                    Case "Last"

     

                        dgrdRegister.CurrentPageIndex = dgrdRegister.PageCount - 1

     

                End Select

     

                LoadData()

     

            End Sub

     

            '分页

     

            Private Sub dlstPage_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dlstPage.SelectedIndexChanged

     

                dgrdRegister.PageSize = CInt(dlstPage.SelectedValue)

     

                txtToPage.Text = ""

     

                dgrdRegister.CurrentPageIndex = 0

     

                LoadData()

     

            End Sub

     

            '跳转页

     

            Private Sub lbnGO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbnGO.Click

     

                Dim ToPage As Integer

     

                If txtToPage.Text.Trim <> "" Then

     

                    If IsNumeric(txtToPage.Text) Then

     

                        ToPage = CInt(txtToPage.Text.Trim)

     

                        If ToPage <= pageCount Then

     

                            Try

     

                                dgrdRegister.CurrentPageIndex = ToPage - 1

     

                                LoadData()

     

                            Catch ex As Exception

     

                                Response.Write("<script language='javascript'>alert('输入的页数不能小于等于0');history.back();</script>")

     

                                Response.End()

     

                            End Try

     

                        Else

     

                            Response.Write("<script language='javascript'>alert('您输入的页码不能大于页数');history.back();</script>")

     

                            Response.End()

     

                        End If

     

                    Else

     

                        Response.Write("<script language='javascript'>alert('输入的页码数为必须数字');history.back();</script>")

     

                        Response.End()

     

                    End If

     

                End If

     

            End Sub

     

    #End Region

     

    注释头样式:

     

    '***********************************************************************

     

    ' Module: Disease.vb

     

    ' Author: 赵国亮

     

    ' Modified: 2005年6月13日 16:22:00

     

    ' Purpose: Definition of the Class Disease

     

    ' Comment: Web层数据层疾病前台显示。

     

    '***********************************************************************

     

     

     

    DataAccess层样式:

     

            '----------------------------------------------------------------

     

            ' Name:        UpdateKeyKnowledge(ByVal KeyKnowledgeID As Integer, ByVal objKeyKnowledge As Sanitation.DataAccess.DiseaseKey.DiseaseKey)

     

            ' Description: 根据DiseaseSeriaNo修改疾病金钥匙中指定疾病的健康保健知识,成功返回1,失败返回0

     

            ' Parameters:

     

            '    [ByVal] objKeyKnowledge -

     

            ' Return:      Integer

     

            '----------------------------------------------------------------

     

            Public Function UpdateKeyKnowledge(ByVal KeyKnowledgeID As Integer, ByVal objKeyKnowledge As Sanitation.DataAccess.DiseaseKey.DiseaseKey) As Integer

     

                ' TODO : 调用存储过程:p_UpdateKeyKnowledge

     

     

     

                '建立连接

     

                Dim conn As SqlConnection = New SqlConnection(ConnectionString)

     

               Dim cmd As SqlCommand = New SqlCommand("p_UpdateKeyKnowledge", conn)

     

     

     

                cmd.CommandType = CommandType.StoredProcedure

     

     

     

                '传递参数

     

                Dim param As SqlParameter

     

     

     

                '------------------------------------对KeyKnowledge表进行修改操作---------------------------------

     

     

     

                param = cmd.Parameters.Add("@KeyKnowledgeID", SqlDbType.Int)

     

                param.Value = KeyKnowledgeID                                        ' 健康保健知识的编号

     

     

     

                param = cmd.Parameters.Add("@KeyKnowledgeTitle", SqlDbType.VarChar)

     

                param.Value = objKeyKnowledge.KeyKnowledgeTitle                     ' 疾病健康保健知识标题

     

     

     

                param = cmd.Parameters.Add("@KeyKnowledgeContent", SqlDbType.Text)

     

                param.Value = objKeyKnowledge.KeyKnowledgeContent                   ' 疾病健康保健知识内容

     

     

     

                Dim cmm As Integer

     

     

     

                '打开连接

     

                conn.Open()

     

                cmm = cmd.ExecuteNonQuery

     

     

     

                '关闭连接

     

                conn.Close()

     

     

     

                '返回函数值

     

                If cmm > 0 Then

     

                    Return 1

     

                Else

     

                    Return 0

     

                End If

     

     

     

            End Function

     

     

     

    页面注意

     

    1.添加,删除,返回等按钮使用圆角图片按钮;

     

    2.各个DataGrid外表格的宽度为95%,居中;

     

    3.各个DataGrid头部加入正确背景;

     

    4.文本显示要注意添加强制换行;

     

     

     

    后台DataGrid中背景色

     

    DataGrid #FFFFFF

     

    页眉 #E4EDF9

     

    普通项 #F1F3F5

     

     

     

    测试注意问题

     

    1.越权;

     

    2.页面样式;

     

    3.按钮对应功能;

     

    4.每个页面的title;

     

    5.上传文件大小的限制;

     

    6.各个输入文本框添加是否为空的判断;

     

    7.空数据情况下页面显示是否正常,功能是否正常;

     

    8.少数据情况下页面显示是否正常,功能是否正常;

     

    9.多数据情况下页面显示是否正常,功能是否正常;

     

    10.不同用户登陆后所见功能及操作是否正常;

     

    11.功能是否全面;

     

    每个页面都要做详细测试,并多多注意!

     

    12.所有页面中有文本添加的地方,在前台是否按原样显示。

     

    13.权限控制

     

    用例1:

     

    用例名称

     无登录权限测试

     

    操作步骤

     1) 登录后打开要测试的页面,右键选择页面的属性,复制页面的地址。

     

    2) 退出登录(清空cookies),在浏览器地址栏粘贴页面地址打开页面。

     

    应当返回结果

     弹出对话框提示无权限,并终止页面的显示。

     

     

    用例2:

     

    用例名称

     有登录权限测试

     

    操作步骤

     1) 登录后打开要测试的页面,右键选择页面的属性,复制页面的地址。

     

    2) 以没有权限的用户登录,在浏览器地址栏粘贴页面地址打开页面。

     

    应当返回结果

     弹出对话框提示无权限,并终止页面的显示。

     

     

    14. 特殊字符

     

    用例1:

     

    用例名称

     输入特殊字符

     

    操作步骤

     在标题或内容中输入特殊字符:

     

    1、 空格

     

    2、 </td></tr></table>

     

    3、 <span onclick="alert('test');">test</span>

     

    应当返回结果

     进行字符(反)替换,按原样显示。或去掉标题中的空格(trim)

     

     

    用例2:

     

    用例名称

     输入连续英文字符

     

    操作步骤

     在标题或内容中输入特殊字符:

     

    如:ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt

     

    应当返回结果

     用

     

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

     

    <tr><td>test

     

    </td></tr>

     

    </table>

     

    控制,不使表格变形!

     

  • 相关阅读:
    设计模式---单例模式
    Linux介绍
    集合---Map
    集合---Collection
    JDK1.7中HashMap底层实现原理(转)
    算法面试题-用单向链表表示十进制整数,求两个正整数之和。1234+34=1268
    idea 常用插件
    ehcache配置log4j日志,或与spirng cache整合用注解形式,打印注解日志
    spring cache @CacheEvict 清除多个key
    tomcat源码及其下载版本
  • 原文地址:https://www.cnblogs.com/hugo/p/480682.html
Copyright © 2011-2022 走看看