2016-11-17 1 views
0

Während der Arbeit an asp.Net Webforms. Ich realisierte und bekam viele Beschwerden. Drop-down ausgewählt Der Index benötigt sehr viel Zeit, um ein weiteres Dropdown-Menü für den Selected Index Change zu binden. Die Änderung war sehr einfach, aber kein Glück.Asp.Net C# DropDownList Ausgewählter Indexwechsel dauert ungefähr 50 bis 60 Sek.

<div class="col-sm-4"> 
        <div> 
         <asp:Label Text="Category *" ID="LabelCompanyCategory" runat="server"></asp:Label> 
        </div> 
        <div> 
         <telerik:RadComboBox ID="DropDownListCompanyCategory" runat="server" 
          AutoPostBack="true" AppendDataBoundItems="true" 
          Width="100%" CssClass="form-control" CausesValidation="False" 
          DataSourceID="SqlDataSourceCategory" DataTextField="catDescription" DataValueField="CatId" 
          OnSelectedIndexChanged="DropDownListCompanyCategory_SelectedIndexChanged" 
          EmptyMessage="Select Category"> 
         </telerik:RadComboBox> 
         <asp:RequiredFieldValidator runat="server" ErrorMessage="please select a category" Display="Dynamic" 
          ControlToValidate="DropDownListCompanyCategory" ForeColor="Red" ID="rfv2"></asp:RequiredFieldValidator> 
         <asp:SqlDataSource ID="SqlDataSourceCategory" ConnectionString='<%$ ConnectionStrings:MainConnection %>' runat="server" 
          SelectCommand=" select CatId, Catdescription from dbo.category"></asp:SqlDataSource> 
        </div> 
       </div> 
       <div class="col-sm-4" runat="server" id="DivActivity" visible="false"> 
        <div> 
         <asp:Label Text="Activity *" ID="LabelCompanyActivity" runat="server"></asp:Label> 
        </div> 
        <div> 
         <telerik:RadComboBox ID="DropDownListActivity" runat="server" CssClass="form-control" Width="100%" 
          AppendDataBoundItems="false" DataSourceID="SqlDataSourceActivity" EmptyMessage="Select Activity" CausesValidation="False" 
          DataTextField="activity" DataValueField="id"> 
         </telerik:RadComboBox> 
         <asp:RequiredFieldValidator runat="server" ErrorMessage="please select a Activity" 
          ControlToValidate="DropDownListActivity" ForeColor="Red" Display="Dynamic" ID="RequiredFieldValidator1"></asp:RequiredFieldValidator> 
        </div> 
        <asp:SqlDataSource ID="SqlDataSourceActivity" ConnectionString='<%$ ConnectionStrings:MainConnection %>' runat="server" 
         SelectCommand="select activity, id from activity where [email protected]"> 
         <SelectParameters> 
          <asp:ControlParameter ControlID="DropDownListCompanyCategory" PropertyName="SelectedValue" 
           DefaultValue="0" Name="CategoryId" /> 
         </SelectParameters> 
        </asp:SqlDataSource> 
       </div> 

Backend-Code:

protected void DropDownListCompanyCategory_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DivActivity.Visible = true; 
    DropDownListActivity.DataBind(); 
} 
+0

Haben Sie die Abfrageausführungszeit in 'SqlDataSource' überprüft? Wenn beide Abfragen im SQL-Verwaltungstool eine geringe Ausführungszeit haben, wird "ViewState" -Blob wahrscheinlich zu Ihrem Problem. –

+0

Abfrage dauert nicht Zeit ... ihre Arbeit Absolut gut und keine Komplexität in Abfrage überhaupt. –

Antwort

0

Telerik Komponenten sind erstaunlich schnell, aber Sie müssen sie entsprechend konfigurieren und die RadAjaxManager verwenden. das Beispiel folgt hier: http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

wenn der Datensatz sehr groß ist und die Leistung ist noch nicht gut genug müssen Sie den loadOnDemand konfigurieren oder die Bindung an Clientseite Daten zurück.

+0

Telerik Controls funktionieren insgesamt gut. Selbst wenn ich Complete Web on Telerik Control erstellt habe, arbeiten sie sehr schnell. Mein DataSet enthält 1 bis 20 Zeilen pro Index. sogar einige haben nur 1 Reihe. aber gleichzeitig. einige Zeit überschreitet auch von 60 Sekunden. Angewandt viele Korrekturen, aber kein Glück –

Verwandte Themen