2016-11-17 15 views
0

asp.Net webformsで作業中。私は気づき、多くの不満を持っています。ドロップダウン選択インデックスが別のバインドに巨大な時間を費やしています。選択したインデックスにドロップダウンがあります。Asp.Net C#DropDownList選択されたインデックスの変更約50〜60秒

<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> 

バックエンドコード:

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

'SqlDataSource'で指定されたクエリの実行時間を確認しましたか? SQL管理ツールで両方のクエリの実行時間が短い場合は、おそらく 'ViewState'の膨張が問題になります。 –

+0

クエリは時間がかかっていません...その作業は絶対にうまくいっていて、クエリの複雑さはまったくありません。 –

答えて

0

Telerikコンポーネント驚くほど高速ですが、あなたはそれらを適切に設定し、RadAjaxManagerを使用する必要があります。 ここで例に従ってください: http://demos.telerik.com/aspnet-ajax/combobox/examples/functionality/multiplecomboboxes/defaultcs.aspx

データセットが非常に大きく、パフォーマンスはまだあなたがloadOnDemandを設定したり、結合、クライアント側のデータに戻す必要があります十分ではない場合。

+0

Telerik Controlsはトータルビルドで問題なく動作しています。私は非常に速く働いているtelerik COntrolのComplete webを作成しました。 My DataSetには、各インデックスの1〜20行が含まれます。あるものでさえも1行しかありません。同じ時間を取る。 60秒を超える時間もあります。多くの訂正が適用されましたが運がない –

関連する問題