2013-04-03 28 views
0

我有一個UserControl包含一個下拉列表和一個textbox.This usercontrol我在我的web應用程序內使用aspx頁面。 所以我有問題,如果我把一些文本放在usercontrol裏面的文本框內,那麼應該在運行時啓用下拉列表的requiredfieldvalidator,否則它應該被禁用。關於aspx頁面內用戶控件的使用

任何幫助將是非常可觀.....

+1

您應該顯示'UserControl'的ASCX標記。你爲什麼認爲'UserControl'負責解決這個問題,因爲控件+ Validator都在其中? –

+0

我給只有一個下拉和一個文本框內的usercontrol.and添加requiredfieldvalidator爲下拉列表默認 – Passenger

+0

禁用顯示您的代碼。 –

回答

0

集CausesValidation屬性設置爲false,那麼驗證將不會被下拉列表開火。

1

既然你希望RequiredFieldValidator只有當用戶輸入文字到TextBox我推薦使用CustomValidator來代替。

void ServerValidation (object source, ServerValidateEventArgs args) 
{  
    args.IsValid = TextBox1.Text.Length == 0 || DropDownList1.SelectedIndex != -1; 
} 

它可能使用一個CustomValidator控制而不設置ControlToValidate屬性。

一種可能clientvalidation功能:

<script language="javascript"> 
    <!-- 
    function ClientValidate(source, arguments) 
    { 
     var txt = document.getElementById('<%= TextBox1.ClientID %>'); 
     var ddl = document.getElementById('<%= DropDownList1.ClientID %>'); 
     if (txt.length == 0) 
     arguments.IsValid = true; 
     else 
     arguments.IsValid = ddl.selectedIndex >= 0; 
    } 
    // --> 
</script> 

你必須通過ClientValidationFunction財產登記它的驗證:

<asp:CustomValidator Id="CustomValidator1" runat="server" 
    ClientValidationFunction="ClientValidate" 
    OnServerValidate="ServerValidation"> 
</asp:CustomValidator> 
+0

感謝您的回覆。我正在研究它。讓你知道它是否已完成 – Passenger

+0

你好Tim,有一件事我不得不問 - 這個JavaScript客戶端驗證函數應該添加在哪裏? – Passenger

+0

上面的'CustomValidator'包含了msdn的鏈接,其中全部解釋。你可以使用客戶端驗證,因此我提供了這個javascriot函數。您必須通過'ClientValidationFunction'屬性在驗證器上註冊它(如上所述)。相應地編輯我的答案。 –

相關問題