1

我正在开发一个 ASP.NET Web 应用程序。我的一个在客户端机器上执行非常慢。在我使用 GridView 的地方,其中包括一些功能和一些控件,例如组合框输入框,每个控件都有一些功能和计算。

Please suggest me how can I improve this?

Page on content.

 - GridView
    1. Combobox with jquery datafiltering 
    2. Inputbox with data check function 
    3. More function of grid like update,add, new, delete.

I am also use Viewsate on this page.



<%@ Page Title="" Language="C#" MasterPageFile="~/UI/Healthcare.Master" AutoEventWireup="true" CodeBehind="frmStockIn.aspx.cs" Inherits="Com.Codespecies.Healthcare.UI.Pharmacy.frmStockIn" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder_header" runat="server">




</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

……………………

            <div class="box_bg" style="height: auto; width: 1020px; border: 0px solid; border-color: #0167AA; margin:5px 0px 0px 0px; float:left;">

                <div style=" min-height:30px; width: 1005px;  padding: 0px 0px 0px 2px;">
                    <div style="min-height: 30px; width:auto; width:300px; float: left; font-weight: bold;">
                        Drugs Details
                    </div>
                    <div style="min-height: 30px; width: 600px; float: left;">
                        <div id="msg" style="height:auto; float:left;">
                            <asp:Label ID="lblMsg" runat="server" Text=" "></asp:Label>
                        </div>
                        <div id="ajaxLoader" style=" display:none; margin:2px 0px 0px 0px; float:left;">
                            <img height="20px" width="20px" src="../../image/ajax-loading/ajax-loading-2.gif" alt="loader" border="0" style=""/> 
                        </div>
                    </div>
                </div>

                <div style=" width: auto; padding: 0px 0px 5px 0px;">

                <asp:GridView ID="gvStockIn" runat="server" AllowPaging="True" Width="1020px"
                        AlternatingRowStyle-HorizontalAlign="Left" AlternatingRowStyle-VerticalAlign="Middle" 
                AutoGenerateColumns="False" BorderStyle="None" DataKeyNames="ID" 
                        Font-Names="Calibri" Font-Size="Small" ForeColor="#333333" GridLines="None" 
                PageSize="100" ShowFooter="True" ShowHeaderWhenEmpty="True" 
                        onrowcancelingedit="gvStockIn_RowCancelingEdit" onrowcommand="gvStockIn_RowCommand" 
                onrowdeleting="gvStockIn_RowDeleting" onrowediting="gvStockIn_RowEditing" 
                        onrowupdating="gvStockIn_RowUpdating" onrowdatabound="gvStockIn_RowDataBound" 
                        AllowSorting="True" TabIndex="5">
                <AlternatingRowStyle BackColor="#DCEEFC" Font-Names="Calibri" HorizontalAlign="Left" VerticalAlign="Middle" />

                    <Columns>

                        <asp:TemplateField HeaderText="SL" SortExpression="ID">
                            <ItemStyle Width="30px" />
                            <HeaderStyle Width="30px" />
                            <FooterStyle Width="30px" />
                            <EditItemTemplate>
                                <asp:Label ID="lblSerialNo" runat="server" Text='<%# Eval("ID") %>' Width="30px"></asp:Label>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:Label ID="lblNewSerialNo" runat="server" Width="30px">NA</asp:Label>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblSerialNo" runat="server" Text='<%# Bind("ID") %>' Width="30px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Drug" >
                            <ItemStyle Width="170px" />
                            <HeaderStyle Width="170px" />
                            <FooterStyle Width="170px" />
                            <EditItemTemplate>
                                <asp:Label ID="lblDrug" runat="server" Text='<%# Bind("DRUG_NAME") %>' Width="170px"></asp:Label>
                                <%--<asp:TextBox ID="txtDrug" runat="server" CssClass="Drug" Text='<%# Eval("DRUG_NAME") %>' Width="100px"></asp:TextBox>--%>
                            </EditItemTemplate>
                            <FooterTemplate>                               
                                <asp:DropDownList CssClass="fire_selected_change_event combobox combobox1" ID="ddlNewDrug" runat="server" onselectedindexchanged="ddlNewDrug_SelectedIndexChanged">
                                </asp:DropDownList>

                                <%--<asp:TextBox ID="txtNewDrug" runat="server" CssClass="Drug" Width="100px"></asp:TextBox>--%>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblDrug" runat="server" Text='<%# Bind("DRUG_NAME") %>' Width="170px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Presentation">
                            <ItemStyle Width="130px" />
                            <HeaderStyle Width="130px" />
                            <FooterStyle Width="130px" CssClass="drug_list1"/>
                            <EditItemTemplate>
                                <asp:Label ID="lblPresentation" runat="server" Text='<%# Bind("PRESENTATION_NAME") %>' Width="130px"></asp:Label>
                                <%--<asp:TextBox ID="txtPresentation" runat="server" CssClass="Presentation" Text='<%# Eval("PRESENTATION_NAME") %>' Width="110px"></asp:TextBox>--%>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:DropDownList CssClass="fire_selected_change_event combobox combobox1" ID="ddlNewPresentation" runat="server" AutoPostBack="True" onselectedindexchanged="ddlNewPresentation_SelectedIndexChanged">
                                </asp:DropDownList>
                                <%--<asp:TextBox ID="txtNewPresentation" runat="server" CssClass="Presentation" Width="110px"></asp:TextBox>--%>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblPresentation" runat="server" Text='<%# Bind("PRESENTATION_NAME") %>' Width="130px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Unit Strength">
                            <ItemStyle Width="130px" />
                            <HeaderStyle Width="130px" />
                            <FooterStyle Width="130px" CssClass="drug_list1"/>
                            <EditItemTemplate>
                                <asp:Label ID="lblUnitStrength" runat="server" Text='<%# Bind("DRUG_UNIT_STRENGTH") %>' Width="110px"></asp:Label>
                                <%--<asp:TextBox ID="txtUnitStrength" runat="server" CssClass="UnitStrength" Text='<%# Eval("DRUG_UNIT_STRENGTH") %>' Width="110px"></asp:TextBox>--%>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:DropDownList CssClass="fire_selected_change_event combobox combobox1" ID="ddlNewUnitStrength" runat="server" AutoPostBack="True" onselectedindexchanged="ddlNewUnitStrength_SelectedIndexChanged">
                                </asp:DropDownList>
                                <%--<asp:TextBox ID="txtNewUnitStrength" runat="server" CssClass="UnitStrength" Width="110px"></asp:TextBox>--%>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblUnitStrength" runat="server" Text='<%# Bind("DRUG_UNIT_STRENGTH") %>' Width="110px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Mfg Date">
                            <ItemStyle Width="65px" />
                            <HeaderStyle Width="65px" />
                            <FooterStyle Width="65px" />
                            <EditItemTemplate>
                                <asp:TextBox ID="txtManufacturerDate" runat="server" CssClass="date_property" Text='<%# Eval("DRUG_MANUFACTURER_DATE", "{0:dd/MM/yyyy}") %>' Height="25px" Width="65px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewManufacturerDate" runat="server" CssClass="date_property" Height="25px" Width="65px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblManufacturerDate" runat="server" Text='<%# Bind("DRUG_MANUFACTURER_DATE", "{0:dd/MM/yyyy}") %>' Height="25px" Width="65px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Exp. Date">
                            <ItemStyle Width="65px" />
                            <HeaderStyle Width="65px" />
                            <FooterStyle Width="65px" />
                            <EditItemTemplate>
                                <asp:TextBox ID="txtExpireDate" runat="server" CssClass="date_property" Text='<%# Eval("DRUG_EXPIRE_DATE", "{0:dd/MM/yyyy}") %>' Height="25px" Width="65px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewExpireDate" runat="server" CssClass="date_property" Height="25px"  Width="65px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblExpireDate" runat="server" Text='<%# Bind("DRUG_EXPIRE_DATE", "{0:dd/MM/yyyy}") %>' Height="25px" Width="65px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Qty">
                            <ItemStyle Width="40px" HorizontalAlign="Right" />
                            <HeaderStyle Width="40px" HorizontalAlign="Right" />
                            <FooterStyle Width="40px" HorizontalAlign="Right" />
                            <EditItemTemplate>
                                <asp:TextBox ID="txtQuantity" runat="server" CssClass="check_decimal Quantity" Text='<%# Eval("QUANTITY") %>' Height="25px" Width="40px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewQuantity" runat="server" CssClass="check_decimal Quantity" Height="25px" Width="40px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblQuantity" runat="server" Text='<%# Bind("QUANTITY") %>' Height="25px" Width="40px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Cost Price">
                            <ItemStyle Width="70px" HorizontalAlign="Right"/>
                            <HeaderStyle Width="70px" HorizontalAlign="Right"/>
                            <FooterStyle Width="70px" HorizontalAlign="Right"/>
                            <EditItemTemplate>
                                <asp:TextBox ID="txtCostPrice" runat="server" CssClass="check_decimal CostPrice" Text='<%# Eval("COST_PRICE") %>' ontextchanged="txtCostPrice_TextChanged" AutoPostBack="true" Height="25px" Width="60px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewCostPrice" runat="server" CssClass="check_decimal CostPrice" ontextchanged="txtNewCostPrice_TextChanged" AutoPostBack="true" Height="25px" Width="60px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblCostPrice" runat="server" Text='<%# Bind("COST_PRICE") %>' Height="25px" Width="60px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Sale Price">
                            <ItemStyle Width="70px" HorizontalAlign="Right"/>
                            <HeaderStyle Width="70px" HorizontalAlign="Right"/>
                            <FooterStyle Width="70px" HorizontalAlign="Right"/>
                            <EditItemTemplate>
                                <asp:TextBox ID="txtSellPrice" runat="server" CssClass="check_decimal SellPrice" Text='<%# Eval("SELL_PRICE") %>' Height="25px" Width="60px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewSellPrice" runat="server" CssClass="check_decimal SellPrice" Height="25px" Width="60px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblSellPrice" runat="server" Text='<%# Bind("SELL_PRICE") %>' Height="25px" Width="60px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Discount">
                            <ItemStyle Width="60px" HorizontalAlign="Right"/>
                            <HeaderStyle Width="60px" HorizontalAlign="Right"/>
                            <FooterStyle Width="60px" HorizontalAlign="Right"/>
                            <EditItemTemplate>
                                <asp:TextBox ID="txtDiscount" runat="server" CssClass="check_decimal percentage" Text='<%# Eval("DISCOUNT") %>' Height="25px" Width="60px"></asp:TextBox>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewDiscount" runat="server" CssClass="check_decimal percentage" Height="25px" Width="60px"></asp:TextBox>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblDiscount" runat="server" Text='<%# Bind("DISCOUNT") %>' Height="25px" Width="60px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Sub Total">
                            <ItemStyle Width="70px" HorizontalAlign="Right"/>
                            <HeaderStyle Width="70px" HorizontalAlign="Right"/>
                            <FooterStyle Width="70px" HorizontalAlign="Right"/>
                            <EditItemTemplate>
                                <asp:TextBox ID="txtSubTotal" runat="server" CssClass="check_decimal" Text='<%# Eval("SUB_TOTAL_AMOUNT") %>' ontextchanged="txtSubTotal_TextChanged" AutoPostBack="true" Height="25px" Width="70px"></asp:TextBox>
                                <%--<asp:Label ID="lblSubTotal" runat="server" Text='<%# Eval("SUB_TOTAL_AMOUNT") %>' Height="25px" Width="80px"></asp:Label>--%>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:TextBox ID="txtNewSubTotal" runat="server" CssClass="check_decimal" Text='' ontextchanged="txtNewSubTotal_TextChanged" AutoPostBack="true" Height="25px" Width="70px"></asp:TextBox>
                                <%--<asp:Label ID="lblSubTotal" runat="server" Text='' Height="25px" Width="80px"></asp:Label>--%>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:Label ID="lblSubTotal" runat="server" Text='<%# Bind("SUB_TOTAL_AMOUNT") %>' Height="25px" Width="70px"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Action" ShowHeader="False">
                            <ItemStyle Width="100px" HorizontalAlign="Center"/>
                            <HeaderStyle Width="100px" HorizontalAlign="Center"/>
                            <FooterStyle Width="100px" HorizontalAlign="Center"/>
                            <EditItemTemplate>
                                 <asp:ImageButton ID="lnkUpdate"    ToolTip="Update"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/update.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="Update" ></asp:ImageButton>
                                <asp:ImageButton ID="lnkCancel"    ToolTip="Cancel"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/cancel.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="Cancel" ></asp:ImageButton>
                            <%--    <asp:LinkButton ID="lnkUpdate" runat="server"   CausesValidation="False" OnClientClick="load_ajax_drugs_details();" CommandName="Update" Text="Update"></asp:LinkButton>
                                <asp:LinkButton ID="lnkCancel" runat="server"  CausesValidation="False" OnClientClick="load_ajax_drugs_details();" CommandName="Cancel" Text="Cancel"></asp:LinkButton>--%>
                            </EditItemTemplate>
                            <FooterTemplate>
                                <asp:ImageButton ID="lnkNew"    ToolTip="New"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/add.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="New" ></asp:ImageButton>
                                <asp:ImageButton ID="lnkRefresh"    ToolTip="Refresh"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/refresh.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="Refresh" ></asp:ImageButton>
                            </FooterTemplate>
                            <ItemTemplate>
                                <asp:ImageButton ID="lnkEdit"    ToolTip="Edit"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/edit.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="Edit" ></asp:ImageButton>
                                <%--<asp:LinkButton ID="lnkEdit" ToolTip="Edit"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/edit.png" Height="10px" Width="15px" CausesValidation="False"  CommandArgument="" CommandName="Edit" Text="Edit"></asp:LinkButton>--%>
                            <asp:ImageButton ID="lnkDelete"    ToolTip="Delete"  runat="server" OnClientClick="load_ajax_drugs_details();" ImageUrl="../../image/delete.png" Height="25px" Width="25px" CausesValidation="False"  CommandArgument="" CommandName="Delete" ></asp:ImageButton>
                            </ItemTemplate>
                        </asp:TemplateField>                   

                    </Columns>

                <HeaderStyle BackColor="#507CD1" ForeColor="White" HorizontalAlign="Left" VerticalAlign="Middle" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Right" VerticalAlign="Middle" />
                <RowStyle Font-Names="Calibri" /> 
                <FooterStyle CssClass="drug_list"></FooterStyle>
                </asp:GridView> 

                </div>

               .....
               .....

          </ContentTemplate>
          </asp:UpdatePanel>
        </div>


</asp:Content>



   }
4

1 回答 1

2

这个问题有很多原因。据我从你的问题中理解,我会建议一些你需要看看的地方。

1)检查您从数据库中检索到的数据量,以便主要显示网格视图。

2)将上述控件添加到gridview不会使其性能不佳。但是您谈论的计算可能是一个原因。深入查看代码,检查是否有任何长时间运行的循环或其他东西那里。

3)如果前两个没有帮助您进行分析。对于您的问题,您只需要试用版的ant 性能分析器。安装配置文件后,找出哪个数据库调用或 .net 函数需要更多时间来执行,然后对其进行调试。

于 2012-11-30T11:24:54.143 回答