【发布时间】:2011-03-02 12:10:45
【问题描述】:
我有一个包含三页输入字段的 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? (严肃的问题......这是一个 webforms 项目,如果 ajaxControlToolkit 正在使用中,但我感到受到限制和反击。)
【问题讨论】:
标签: asp.net asp.net-ajax ajaxcontroltoolkit validation tabcontainer