簡體   English   中英

Ajax tabcontainer的問題

[英]Problem with ajax tabcontainer

我從ajax tabcontainer使用。我想當hiddenfield的值不為1時(當我在gridview中單擊時hiddenfield的值發生變化,hiddenfield的t have problem with set value for hiddenfield) and user click in email tab it alerts and stays in first tab.but in my code it alert and changes tab.i want to stay in cuurent tab. i write this code but it dosen t have problem with set value for hiddenfield) and user click in email tab it alerts and stays in first tab.but in my code it alert and changes tab.i want to stay in cuurent tab. i write this code but it dosen 請幫我。

 <%@ Page Language="C#" %>


     <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>                
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org   


<script type="text/javascript">
   function SetActiveTab() {
   var hfd = $get('<%=HiddenField1.ClientID%>');
   if (hfd.value != "1") {
       alert("hitttttttt");
       var ctrl = $find('TabContainer1');
       ctrl.set_activeTab(ctrl.get_tabs()[0]);


   }

}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Ajax Control - Tabs </title>
 </head>
<body>
<form id="form1" runat="server">
         <b>Tabs Demonstration</b> <br />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
         <asp:HiddenField ID="HiddenField1" runat="server" />
    <br />
    <asp:TabContainer runat="server" ID="TabContainer1" Height="138px"  ActiveTabIndex="0"
        Width="402px">
        <asp:TabPanel runat="server" ID="Panel1" HeaderText="Address" >
            <ContentTemplate>
                <asp:UpdatePanel ID="updatePanel1" runat="server">
                    <ContentTemplate>
                        <table>
                            <tr><td>First Name:</td><td><asp:TextBox ID="txtName" runat="server" /></td></tr>
                            <tr><td>Address:</td><td><asp:TextBox ID="txtAddress" runat="server" /></td></tr>
                        </table>
                   </ContentTemplate>
                </asp:UpdatePanel>
            </ContentTemplate>
        </asp:TabPanel>

        <asp:TabPanel runat="server" ID="Panel3" HeaderText="Email" OnClientClick="SetActiveTab" >
            <ContentTemplate>
                Email: <asp:TextBox ID="txtEmail" runat="server" />

            </ContentTemplate>
        </asp:TabPanel>

        <asp:TabPanel runat="server" ID="Panel2"  HeaderText="Login Details" >
            <ContentTemplate>
             <table>
           <tr> <td>User Name:</td><td><asp:TextBox ID="txtUser" runat="server" /></td></tr>
           <tr> <td>Password:</td><td><asp:TextBox ID="txtPass" runat="server" /></td></tr>
            </ContentTemplate>
        </asp:TabPanel>

    </asp:TabContainer>


</form>

我發現的一個解決方案是刪除OnClientClick處理程序並使用以下javascript:

 function pageLoad() {
    var tabContainer = $find('<%= TabContainer1.ClientID %>');
    var hfd = $get('<%= HiddenField1.ClientID %>');

    var oldSetActiveTab = Function.createDelegate(tabContainer, tabContainer.set_activeTab);

    tabContainer.set_activeTab = function (value) {
        if (value.get_id() == '<%= Panel3.ClientID %>' && hfd.value != "-1") {
            alert("oops");
        }
        else {
            oldSetActiveTab(value);
        }
    };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM