2012-01-18 16 views
-1

私は現在、選択肢をデータベースに保存する保存ボタンをクリックする前にチェックボックスリストのチェックボックスをオフにする必要があるフォームを持っています。値のリストはデータベースから検索され、チェックボックスリストにバインドされます。基本的にチェックボックスの動的リストです。ASP.netを使用したチェックでチェックボックスの値を保存するにはどうすればよいですか?

これを変更して、ユーザーがチェックボックスをオフにするとすぐに自動的にデータベースに保存されるようにしたいと考えています。

これは、単に、アップデートパネル、データリスト、およびチェックボックスを使用して行うことができると考えました。

例:

<asp:UpdatePanel ID="upnlServices" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 

    <asp:DataList ID="dlistAnimals" runat="server"> 
     <ItemTemplate> 
     <asp:CheckBox ID="chkAnimal" AutoPostBack="true" OnCheckedChanged="animal_click" runat="server" /> 
     <asp:Label ID="lblAnimal" AssociatedControlID="chkAnimal" runat="server"<%#Eval("Name")%></asp:Label> 
     </ItemTemplate> 
    </asp:DataList> 

    </ContentTemplate> 
</asp:UpdatePanel> 

「animal_click」は、ストアドプロシージャを使用してデータベースから値を追加または削除するコードビハインド関数です。以前に選択された選択肢は削除されますが、その選択肢がデータベースに存在しない場合は単純に追加されます。

これはローカルマシン上ではすべて動作しますが、リモートサーバーに置くとフォームが遅くなります。ユーザーは複数のチェックボックスをすばやくチェックオフしますが、すべての選択肢がデータベースに保存されているわけではありません。これは、サーバーがユーザーの行動に十分に迅速に追いつくことができないという印象を与えます。

これがなぜこのようなケースか正確にはわかりません。これを行うより効率的な方法があれば、私は提案に興味があるでしょう。

+0

あなたはリピーターのような他のコントロールを試みたことがありますか?または、この方法を試してみてください:http://blogs.msdn.com/b/tom/archive/2008/09/15/slow-performance-of-a-gridview-inside-an-updatepanel.aspx –

+0

私はリピーターを見ましたデータグリッドの使用を決める前にDataGridの背後にある理由は、実装が簡単だったからです。 – nullexception

+0

サンプルでは、​​DataGridではなくDataListを使用しています。 DataListはViewStateを使用してポストバック間の値を保持しないため、別のコントロールを試すように依頼しました。これは、AsyncPostbacks内で使用されると副作用を引き起こす可能性があります。 –

答えて

0

これをスレッディングするのはどうですか?したがって、animal_clickイベントは別のスレッドを作成します。これにより、更新/挿入が完了するまでUIが待機することはありません。それを呼び出すために、このような

何か:

MethodInvoker mi = new MethodInvoker(Threaded); 
mi.BeginInvoke(null, null); 

public delegate void MethodInvoker(); 

private void Threaded() 
{ 
    //do stuff 
} 
+0

私はこのようなものの前にスレッディングを使うことについて考えなかった。実際に何が遅れを引き起こしているのか分かりません。私の現在の考えは、アップデートパネルが物事が正しく機能しない大きな理由かもしれないということです。 – nullexception

+0

updatepanelが遅さの原因として疑わしい場合は、更新パネルでChildrenAsTrigger = "False"を追加してみてください。 :D –

関連する問題