2014-05-08 33 views
0

我有一個列表框,如下所示:RequeredFieldValidaor爲asp.net列表框

<asp:ListBox runat="server" ID="lbSelectedUsers" SelectionMode="Multiple" Height="200" Width="100"></asp:ListBox> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="ValidationGroup" ErrorMessage="No users selected." ControlToValidate="lbSelectedUsers"</asp:RequiredFieldValidator> 

列表框最初是空的,但隨後系統會根據用戶選擇的填充。 我遇到的問題是項目被添加後驗證仍然失敗。

它只適用於用戶實際點擊(選擇)列表上的項目。

我希望只有在列表框爲空時驗證纔會失敗。我知道我可以使我的自定義解決方法,但我希望這與檢查頁面上的其他控件的驗證摘要一起使用。

可以這樣做嗎?

回答

1

這實際上並不是RequiredFieldValidator的用途 - 它只會檢查是否已選擇某項內容。

對於您的情況,您需要使用自定義驗證器(http://msdn.microsoft.com/en-us/library/9eee01cx(VS.80).aspx) - 這將與ValidationSummary控件一樣與任何其他驗證控件一樣(只要您正確設置了驗證組即可使用)。

然後你需要做的就是編寫一個自定義的「ClientValidationFunction」,如果沒有項目將返回false,如果它有項目則返回true。

0

當你綁定列表框時設置InitialValue屬性併爲其分配RFV。

 <asp:ListItem Value="Australia">Australia</asp:ListItem> 
    <asp:ListItem Selected="True" Value="NoCountry">--ChooseCountry--</asp:ListItem> 
    <asp:ListItem Value="USA">USA</asp:ListItem> 

    </asp:ListBox> 

    <asp:RequiredFieldValidator id="valList" 
     ForeColor="#FF0000" 
     ErrorMessage="Selection Invalid!" 
     ControlToValidate="list" 
     InitialValue="NoCountry" 
     EnableClientScript="False" 
     runat="server"/>