我有一个包含三页输入字段的 TabContainer。对于每个 TabPanel,都有一组 ValidatorCalloutExtenders(面板上的每个验证器一个)。
当我验证页面时,验证仅适用于当前面板。For all hidden TabPanels all the validator-tooltips are visible in a mess when that tab is selected.
我在第一个和第二个标签页上放了一个按钮,大致如下所示:
<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?(严肃的问题......这是一个网络表单项目,如果 ajaxControlToolkit 正在使用中,但我感到受到限制和反击。)