c# - ajax工具包:TabContainer confirm when adding tab

标签 c# javascript asp.net ajax tabcontainer

我希望我的 ajaxToolkit:TabContainer 有一个允许用户添加另一个选项卡的选项卡面板。我只希望它在他们单击“+”选项卡面板而不是其他选项卡时回发。 我似乎无法阻止事件在 Javascript 中冒泡:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
    function checkTab(sender, e) {
        if (sender.get_activeTab().get_headerText().replace("<span>", "").replace("</span>", "") != "+") {
            cancelBubble(e);

        }
        else {
            if (!confirm('Are you sure?')) {
                cancelBubble(e);
            }
        }
    }
    function cancelBubble(e) {
        if (e) {
            e.stopPropagation();
        }
        else {
            window.event.cancelBubble = true;
        }
    }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
  <ajaxToolkit:TabContainer ID="MyTabContainer" runat="server" OnActiveTabChanged="MyTabContainer_OnActiveTabChanged"
        AutoPostBack="true" OnClientActiveTabChanged="checkTab">
        <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="My First Tab" Enabled="true">
            <ContentTemplate>
                My first tab
            </ContentTemplate>
        </ajaxToolkit:TabPanel>
        <ajaxToolkit:TabPanel ID="AddTabPanel" runat="server" HeaderText="+" Enabled="true">
            <ContentTemplate>
            </ContentTemplate>
        </ajaxToolkit:TabPanel>
    </ajaxToolkit:TabContainer>
</div>
</form>
</body>
</html>


 protected void MyTabContainer_OnActiveTabChanged(object sender, EventArgs e)
    {
        TabPanel tp = new TabPanel();
        tp.HeaderText = "New Tab";
        MyTabContainer.Tabs.Add(tp);
    }

谢谢, 亚历克斯

最佳答案

您可以在 JavaScript 中使用 return false; 来停止 PostBack。所以我认为你只需要这个:

function checkTab(sender, e) 
{
    if (sender.get_activeTab().get_headerText().replace("<span>", "").replace("</span>", "") != "+") 
    {
        return false;
    }
    else 
    {
       return confirm('Are you sure?');
    }
}

关于c# - ajax工具包:TabContainer confirm when adding tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16057791/

相关文章:

javascript - 根据在文本字段中输入的值更改 Img Src

javascript - 如何获取另一个域的页面源(使用 Javascript!)

javascript - 使用 pattern 属性匹配输入字段中的多个特定值之一

javascript - 没有列表的组单选按钮

c# - Ajax jquery 传递多个参数 web 服务

c# - 如何确定枚举值是否具有一个或多个与之比较的值?

c# - Entity Framework - 数据库映射以获取最新条目

c# - 构建 Where 子句(不确定 PredicateBuilder 是否适合我)

c# - 在集合初始值设定项中使用条件

c# - 反序列化子类中的匿名顶级数组