我有一個三頁輸入字段的TabContainer。對於每個TabPanel,都有一組ValidatorCalloutExtender(面板上的每個驗證器都有一個)。ValidatorCalloutExtender包含TabContainer/TabPanels?
當我驗證頁面時,驗證只適用於當前面板。對於所有隱藏的TabPanel,當選擇該選項卡時,所有驗證程序工具提示都可以在混亂中看到。
我已經把第一和第二個標籤頁,看起來大致是這樣的一個按鈕:
<input type="button" class="next" value="Next" onclick="Page_ClientValidate('Contact'); if(Page_IsValid) { SelectTab(1); }" />
其中selecttab看起來是這樣的:
function SelectTab(ix)
{
var container = $find('<%=createUserTabs.ClientID%>');
container.set_activeTabIndex(ix);
}
只有推的按鈕,標籤頁實際上與驗證一起工作。 但是當我點擊標籤而不是按鈕時,地獄再次剎車。
首先,沒有辦法防止標籤切換。 其次,如果我將驗證添加到OnClientActiveTabChanged =「tabChanged」,所有驗證器都堆積在驗證選項卡上,因爲它沒有顯示。
function tabChanged(sender, args) {
tabIndex = sender.get_activeTabIndex();
if (!Page_ClientValidate('Contacts')) {
if (tabIndex != 0) {
sender.set_activeTabIndex(0);
Page_ClientValidate('Contacts'); //Doesn't fix the validator soup
}
return;
}
有沒有人得到ValidatorCalloutExtenders與TabContainer一起使用?
是否值得用ajaxControlToolkit打擾一切還是應該重寫爲jQuery而不閃爍? (嚴重的問題...這是一個webforms項目,其中很多,如果ajaxControlToolkit正在使用,但我感覺受到約束和反擊。)