سؤال

في telerik radgrid، يكون لدى المستخدم القدرة على إضافة صف وتحرير واحد موجود. يبدو أن الشبكات تفرض فعلا عملية إعادة النشر قبل أن تصبح عناصر التحكم في UI على الشاشة. نستعني بتأخير ثانية إلى ثانيتين من الوقت الذي يتم فيه النقر فوق الزر في الوقت الذي تظهر فيه عناصر التحكم. هذا يبدو حوالي ثانية إلى ثانية طويلة جدا. هنا هو رمزي، أنا لست متأكدا تماما ما هو الخطأ.

أعتذر مقدما عن "Whatz Underz مع Me Codez Post"، لكن هذا يبدو وكأنه أسهل طريقة للذهاب حول هذا واحد. مرة أخرى، لدي مشكلة في الأداء وترغب في معرفة كيفية حلها من حيث الحاجة إلى التعديل الإشعاعي .....

<asp:UpdatePanel ID="upPhone" runat="server">
    <contenttemplate>
            <telerik:RadGrid runat="server" ID="gridPhone" DataSourceID="dsPhone" AutoGenerateColumns="False"
                Width="100%" AllowAutomaticDeletes="True" AllowAutomaticInserts="True"
                GridLines="None" Skin="Vista" AllowAutomaticUpdates="True" 
                ondatabound="gridPhone_DataBound" onitemdeleted="gridPhone_ItemDeleted" 
                oniteminserted="gridPhone_ItemInserted" 
                onitemupdated="gridPhone_ItemUpdated" 
                onneeddatasource="gridPhone_NeedDataSource">
                <MasterTableView DataKeyNames="phone_id" CommandItemDisplay="Top" 
                    EditMode="InPlace" AllowFilteringByColumn="False">
                    <Columns>
                        <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn">
                            <ItemStyle CssClass="MyImageButton" />
                        </telerik:GridEditCommandColumn>
                        <telerik:GridBoundColumn DataField="phone_id" ReadOnly="true" UniqueName="phone_id"
                            Visible="false">
                        </telerik:GridBoundColumn>
                        <telerik:GridDropDownColumn DataField="d_phone_type_id" DataSourceID="dsPhoneType"
                            UniqueName="d_phone_type_id" DataType="System.Int32" ListValueField="d_phone_type_id"
                            ListTextField="name" HeaderText="Type">
                        </telerik:GridDropDownColumn>
                        <telerik:GridTemplateColumn HeaderText="Number" SortExpression="number" UniqueName="number">
                            <ItemTemplate>
                                <asp:Label runat="server" ID="lblPhoneNumber" Text='<%# Eval("number", "{0:(###) ###-####}") %>'></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:TextBox ID="txtNumber" MaxLength="10" runat="server" Text='<%# Bind("number") %>'></asp:TextBox>

                            </EditItemTemplate>
                        </telerik:GridTemplateColumn>
                        <telerik:GridBoundColumn DataField="description" UniqueName="description" HeaderText="Description">
                        </telerik:GridBoundColumn>
                        <telerik:GridCheckBoxColumn DataField="isprimary" UniqueName="isprimary" HeaderText="Primary"
                            DataType="System.Int16">
                        </telerik:GridCheckBoxColumn>
                        <telerik:GridButtonColumn ConfirmText="Delete this number?" ConfirmDialogType="RadWindow"
                            ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
                            UniqueName="DeleteColumn">
                            <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton" />
                        </telerik:GridButtonColumn>
                    </Columns>
                    <EditFormSettings>
                        <EditColumn UniqueName="EditCommandColumn1">
                        </EditColumn>
                    </EditFormSettings>
                </MasterTableView>
                <ClientSettings>
                    <Selecting AllowRowSelect="True" />
                </ClientSettings>
            </telerik:RadGrid>
            <asp:ObjectDataSource ID="dsPhoneType" runat="server" 
                OldValuesParameterFormatString="original_{0}" SelectMethod="GetPhoneTypes" 
                TypeName="DataAccess"></asp:ObjectDataSource>
            <asp:SqlDataSource ID="dsPhone" runat="server" ConnectionString="<%$ ConnectionStrings:TBD %>"
                DeleteCommand="DELETE FROM [phone] WHERE [phone_id] = @phone_id" InsertCommand="INSERT INTO [phone] ([person_id],[d_phone_type_id], [number], [description], [isprimary]) VALUES (@person_id,@d_phone_type_id, @number, @description, @isprimary)"
                SelectCommand="get_PhoneById" UpdateCommand="UPDATE [phone] SET [d_phone_type_id] = @d_phone_type_id, [number] = @number, [description] = @description, [isprimary] = @isprimary WHERE [phone_id] = @phone_id"
                SelectCommandType="StoredProcedure">
                <SelectParameters>
                    <asp:ControlParameter ControlID="lblID" Name="person_id" PropertyName="Text" Type="Int32" />
                </SelectParameters>
                <DeleteParameters>
                    <asp:Parameter Name="phone_id" Type="Int32" />
                </DeleteParameters>
                <UpdateParameters>
                    <asp:Parameter Name="d_phone_type_id" Type="Int32" />
                    <asp:Parameter Name="number" Type="Int64" />
                    <asp:Parameter Name="description" Type="String" />
                    <asp:Parameter Name="isprimary" Type="Boolean" />
                    <asp:Parameter Name="phone_id" Type="Int32" />
                </UpdateParameters>
                <InsertParameters>
                    <asp:ControlParameter ControlID="lblID" Name="person_id" PropertyName="Text" />
                    <asp:Parameter Name="d_phone_type_id" Type="Int32" />
                    <asp:Parameter Name="number" Type="Int64" />
                    <asp:Parameter Name="description" Type="String" />
                    <asp:Parameter Name="isprimary" Type="Boolean" />
                </InsertParameters>
            </asp:SqlDataSource>
        </contenttemplate>
</asp:UpdatePanel>
هل كانت مفيدة؟

المحلول

مجرد زوجين للتحقق:

هل أنت تكرار سلوك الربط في حدث GRIDPHONE_NEEDDASOUSORCE، والأحداث التي تم حذفها، ومحذوفة وإدراجها، وشبكة RAD Native BehViour (باستخدام ASP: SQLDASource Control)؟ سيكون من المفيد رؤية الرمز الخاص بك وراء معرفة ما إذا كنت أم لا.

كم عدد السجلات التي لديك في الشبكة؟ أجد ما إذا كان لدي عدد كبير من العناصر الموجودة في الشبكة ولديها بعض الميزات المتقدمة قيد التشغيل (لقد لاحظت أن لديك تمكين التحقق من تحديد الصف) يطحن الشبكة إلى توقف.

إذا لم يكن أي من هذه العمل / تنطبق على وضعك، فربما يستحق التحقق من قسم الأداء من موقعهم.

نصائح أخرى

أنا أرى أنك تستخدم DataSourceID="dsPhone" و onneeddatasource="gridPhone_NeedDataSource"

لست متأكدا إذا كنت بحاجة إلى كليهما. تأكد أيضا من عدم قيامك بإجراء بيانات التعاون () آخر حيث في التعليمات البرمجية الخاصة بك (Page_Load أو أي مكان آخر) لأن لديك بالفعل حدث OnneedDataSource المرفقة بالشبكة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top