2011-06-29 17 views
2

リストボックスから3つだけを選択できるようにするにはどうすればいいですか?このコードを見ていますが、これには論理的なエラーがあると思いますこれに新しいイムとして間違って誰かが私を導くか、私はこの上で作業できるように、私と一緒にいくつかの記事を共有し、あなたに感謝:)リストボックスからの複数選択C#

してくださいすることができます私のコード

if (listBox1.SelectedIndex <= 4) 
    errorProvider1.SetError(listBox1, "Please pick 1."); 
else 
    errorProvider1.SetError(listBox1, ""); 

答えて

2
<asp:ListBox SelectionMode="Multiple"></asp:ListBox> 
2

あなたはASP.NET-CustomValidatorを使用することができますこれは:

は、クライアント検証機能を提供する:

function validateSelectionCount(sender, args){ 
    var listbox = document.getElementById('ListBox1'); 
    args.IsValid = validateListBoxSelectionCount(listbox, 3, 3); 
} 

function validateListBoxSelectionCount(listbox, minSelected, maxSelected){ 
    var selected=0; 
    if(listbox != null){ 
     for (var i=0; i<listbox.length; i++){ 
      if(listbox.options[i].selected){ 
       selected++; 
       if(selected>maxSelected)break; 
      } 
     } 
    } 
    return (selected >= minSelected && selected <= maxSelected); 
} 

は、サーバー・検証機能を提供する:

Protected Sub validateSelectionCount(ByVal source As Object, ByVal args As ServerValidateEventArgs) 
    Dim count As Int32 = 0 
    Dim maxCount As Int32 = 3 
    Dim minCount As Int32 = 3 
    Dim lb As ListBox = DirectCast(Me.FindControl(DirectCast(source, CustomValidator).ControlToValidate), ListBox) 
    For Each item As ListItem In lb.Items 
     If item.Selected Then count += 1 
     If count > maxCount Then Exit For 
    Next 
    args.IsValid = (count >= minCount AndAlso count <= maxCount) 
End Sub 

とのaspx一部:

<asp:ListBox ID="ListBox1" CausesValidation="true" ValidationGroup="VG_SAVE" runat="server" CssClass="content" SelectionMode="Multiple"></asp:ListBox> 
<asp:CustomValidator ID="CV_SelectionCount" runat="server" ValidateEmptyText="true" ClientValidationFunction="validateSelectionCount" OnServerValidate="validateSelectionCount" ControlToValidate="ListBox1" Display="None" EnableClientScript="true" ErrorMessage="Select 3 items" Style="visibility: hidden" ValidationGroup="VG_SAVE">*</asp:CustomValidator> 
+0

現在、私はこれを実装することはできますか? C# –

2

Saurabhは右である、あなたのリストボックスのプロパティを設定します。 SelectionModeの複数への変換。これにより、リストボックスから複数選択することができます。

+0

mutiplesimpleまたはmultiple exendedに設定してください –

+0

私はあなたが単純で拡張について気にするべきではないと思います。あなたの要件はプロパティを 'SelectionMode = Multiple'に設定した後に実現されます – asma

+0

これはこれまでに設定した内容を意味しますか?どのように私は3つだけを選択するユーザーを有効にするために書き込み、4番目のエラープロバイダが表示されます –

関連する問題