1
我有一個Web應用程序,它具有一個包含表單(內置在詳細信息視圖中)以及用戶控件的頁面。頁面上的表單是一個基本的表單,有幾個字段可供輸入和一個複選框。我有jQuery在document.ready上運行,它隱藏了保存用戶控件的部門,並且如果頁面表單中的複選框被選中,jQuery將被觸發以顯示用戶控件。強制AJAX驗證控件在運行時檢查
兩種表格都使用asp驗證工具進行驗證。
如果我填寫表單,選中該複選框,然後填寫用戶控件中的信息並提交,所有工作都完美無瑕,但是如果我填寫基本表單並且不選中複選框以顯示用戶控件,我從用戶控件中得到驗證錯誤(因爲有一個提交和空值)。我怎樣才能解決這個問題?
代碼剪:
$("#submitMFields").hide();
$("#submitMFields").toggle(false);
$("[id$='chkM']").click(function() {
$("#submitMFields").toggle("slow");
});
<asp:TemplateField HeaderText="Currency">
<EditItemTemplate>
<asp:DropDownList ID="ddlCurrencyList"
runat="server"
DataTextField="strCultureName"
DataValueField="strCulture"
DataSource='<%# CodeLists.Currency() %>'
AppendDataBoundItems="true" >
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Additional Info?">
<EditItemTemplate>
<asp:CheckBox runat="server" ID="chkM" />
<div id="submitMFields">
<cms:Control runat="server" ID="initialM" />
</div>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField InsertText="Submit" ShowCancelButton="False"
ShowInsertButton="True" />
用戶控件中,像這樣的驗證用於 -
<asp:RequiredFieldValidator
id="rfvStartDate"
runat="server"
ControlToValidate="txtStart"
ErrorMessage="Start Date is Required"
Display="dynamic">*
</asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender
ID="VCEStart"
runat="server"
TargetControlID = "rfvStartDate" />
它告訴我,txtStart.ClientID在當前上下文中不存在...... – EvanGWatkins
如果我沒有選中複選框,那麼usercontrol驗證不應該運行,但它仍然會遇到問題... – EvanGWatkins
將控件ID從發件人中提取出來,這只是一個示例,確切的功能對於您而言並不適用。 –