所以我有一個RadPanelBar,並在其中一個RadTreeView。在節點上單擊事件我想要更新一些控件..現在我只是試圖更新文本框。它工作正常,除了第一次點擊一個子節點需要很長時間來更新控件。只需簡單的文本更改。我在我的函數中設置了一個斷點,並且我注意到啓動OnNodeClick事件需要很長時間。如果我在樹視圖中單擊一個父節點,它會在第一次單擊時加載罰款。另外,第一次點擊它後,它加載速度快..如果我刷新頁面,它是緩慢的第一次點擊..有什麼我失蹤..是我的HTML結構不適合這些AJAX調用?我覺得這是一個非常簡單的例子,應該工作..Telerik RadAjaxManager加載控件第一次慢
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="IncidentReportPanel">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="IRViewPanel" LoadingPanelID="LoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Style="width: 320px;
padding-top: 125px;" Skin="Vista">
</telerik:RadAjaxLoadingPanel>
<table width="100%">
<tr style="height: 25px">
<td>
</td>
<td>
</td>
</tr>
<tr style="height: 100%">
<td style="width: 250px">
<telerik:RadPanelBar ID="IncidentReportPanel" runat="server" Height="450px" CssClass="IRPanel">
<Items>
<telerik:RadPanelItem runat="server" Text="Incident Reports" ImageUrl="./Images/folder.gif"
Value="IncidentReports">
<Items>
<telerik:RadPanelItem>
<ItemTemplate>
<telerik:RadTreeView ID="IncidentReportsTreeView" runat="server" OnNodeExpand="LoadTreeNodes"
OnNodeClick="PopulateIRData">
<Nodes>
<telerik:RadTreeNode Text="Pending" ExpandMode="ServerSideCallBack" ImageUrl="./Images/completed.gif">
</telerik:RadTreeNode>
<telerik:RadTreeNode Text="Completed" ExpandMode="ServerSideCallBack" ImageUrl="./Images/completed.gif">
</telerik:RadTreeNode>
</Nodes>
</telerik:RadTreeView>
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem>
<telerik:RadPanelItem runat="server" Text="Calendar" ImageUrl="./Images/calendar.gif"
Value="Calendar">
<Items>
<telerik:RadPanelItem>
<ItemTemplate>
<telerik:RadCalendar runat="server" ID="IRCalendar" Width="100%" />
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelBar>
</td>
<td>
<asp:Panel ID="IRViewPanel" runat="server">
<telerik:RadTextBox ID="RadText" runat="server">
</telerik:RadTextBox>
</asp:Panel>
</td>
</tr>
</table>
protected void PopulateIRData(object sender, RadTreeNodeEventArgs e)
{
RadText.Text = "Hello, World!";
}
編輯:我根據這篇文章,http://www.telerik.com/help/aspnet-ajax/ajax-client-side-performance.html更新我的代碼,而問題依然存在......它再次只發生在第一次..
編輯:只是爲了澄清,根據該條款更新,我的意思是,我刪除了所有的表格和相對寬度,並用css定位和固定寬度替換它們。問題只發生第一次..它只發生有時候..有時候,我認爲我解決了這個問題,因爲它很快就會開始響應..但是之後我改變了我的.aspx並將它改回來(甚至當它工作的很快時也完全一樣)..我得到同樣的問題..
編輯:所以,我刪除了AJAX組件..並設置控件,以便它做PostBack ..它仍然需要很長的時間來打我的中斷點..所以它似乎是它的不是一個AJAX問題......但由於某種原因,我的事件正在耗盡很長的時間..
編輯: 因此,我遵循這篇文章的建議,我用web服務來做我的綁定和處理客戶端代碼..所有似乎都沒事,直到我決定我想從我的webservice返回節點,也可能是exp anded ..所以在我的web服務中,我將RadTreeNodeData對象的ExpandMode設置爲Webservice ..並且當我展開子節點時它正確呈現數據。但是現在我看到了與之前相同的問題,其中一些調用需要20-30秒..它需要20-30秒,甚至在我的web服務中擊中斷點。我應該使用OnClientNodeExpand事件嗎?我不明白爲什麼這麼慢!任何幫助是極大的讚賞!
其他所有時間都很快,我認爲速度可以接受。 – msarchet 2011-03-15 14:30:33
僅在第一次加載時纔會很慢。所有其他時間,這是一個非常可接受的速度。如果我刷新頁面,它又是第一次緩慢......然後在所有其他時間快速。 – ntsue 2011-03-16 17:49:58
我真的需要得到這個工作..打開我的第一個賞金..希望有一些很好的建議! :) – ntsue 2011-03-19 13:40:23