【问题标题】:Ajax TabContainer intermittently dissapears on PostbackAjax TabContainer 在回发时间歇性消失
【发布时间】:2013-01-29 13:53:30
【问题描述】:

我正在用 C# ASP.net 开发一个 GIS Web 应用程序(映射)。

我有一个 Ajax TabContainer,其中包含几个带有表格的 TabPanel。该表包含其他内容,例如地图窗口、比例尺等(均来自 ESRI WebAdf 工具包)。

这是我的表格的精简版,没有其他内容...

<table id="MainTable>

<tr>
<td>
   <ajax:TabContainer runat="server" ActiveTabIndex="0" id="TabContainer"  CssClass="ajax__tab_xp">  

    <ajax:TabPanel runat="server" HeaderText="Online Mapping Service" ID="TabPanel1">

</ajax:TabPanel>

<ajax:TabPanel ID="TabPanel2" runat="server" HeaderText="Postcode">


    </ajax:TabPanel>

    <ajax:TabPanel ID="TabPanel3" runat="server" HeaderText="Coordinates">
        <ContentTemplate>                                      



  </ajax:TabPanel>

   </ajax:TabContainer> 

  </td>
  </tr>

  </table>

在运行时回发时,我的 Tabcontainer 有时会消失。此问题与浏览器无关。

到目前为止,我尝试过没有成功...

  1. 使用 TabContainer 的相对定位设置 Z-Index
  2. 包含一个 JQuery 脚本以“显示”TabContainer...

        <script type="text/javascript" language="javascript">
    
        $(document).ready(function() {
        $("#TabContainer").show();
    
        });
    
       </script>
    

我可以在后面的代码中包含一些 C# 吗?...

Public void page_Load(object sender, EventArgs e)
{
   TabContainer.show()
}

对编程非常陌生,并试图弄清楚如何“始终显示”或“始终位于”TabContainer。

谢谢

【问题讨论】:

    标签: c# javascript jquery asp.net css


    【解决方案1】:

    我不确定这是否是由于您在将代码发布到此处之前清理了代码但缺少标签。

    您的 aspx 上的代码应如下所示:

    <AjaxToolkit:TabContainer ID="TabContainer" runat="server">
        <AjaxToolkit:TabPanel ID="TabPanel1" runat="server">
            <ContentTemplate>
                Your asp/html code goes here
            </ContentTemplate>
        </AjaxToolkit:TabPanel>
     </AjaxToolkit:TabContainer>
    

    【讨论】:

    • 是的,我刚刚清理了它,以免张贴整个桌子。表格和 TabContainer HTML 是正确的并且可以运行,只是影响它的只是消失的问题。
    • 有人对此有想法吗?快把我逼疯了!
    【解决方案2】:

    好的,整理好了。 AJAX 工具包出现问题,无法回发客户端...

    <script language="javascript" type="text/javascript">
    
            // Solution to sys.invalidoperationexception bug
            Sys.Application.initialize = function Sys$_Application$initialize() {
                if (!this._initialized && !this._initializing) {
                    this._initializing = true;
                    var loadMethodSet = false;
                    var initializeDelegate = Function.createDelegate(this, this._doInitialize);
                    if (document.addEventListener) {
                        loadMethodSet = true;
                        document.addEventListener("DOMContentLoaded", initializeDelegate, false);
                    }
                    if (/WebKit/i.test(navigator.userAgent)) {
                        loadMethodSet = true;
                        this._load_timer = setInterval(function() {
                            if (/loaded|complete/.test(document.readyState)) {
                                initializeDelegate();
                            }
                        }, 10);
                    }
                    else {
                        /*@cc_on@*/
                        /*@if (@_win32)
                        loadMethodSet = true;
                        document.write("<script id=__ie_onload defer src=BLOCKED SCRIPTvoid(0)><\/scr" + "ipt>");
                        var deferScript = document.getElementById("__ie_onload");
                        if (deferScript) {
                            deferScript.onreadystatechange = function() {
                                if (this.readyState == "complete") {
                                    initializeDelegate();
                                }
                            };
                        }
                        /*@end@*/
                    }
    
                    // only if no other method will execute initializeDelegate is
                    // it wired to the window's load method.
                    if (!loadMethodSet) {
                        $addHandler(window, "load", initializeDelegate);
                    }
                }
            }
            Sys.Application._doInitialize = function Sys$_Application$_doInitialize() {
                if (this._load_timer !== null) {
                    clearInterval(this._load_timer);
                    this._load_timer = null;
                }
    
                Sys._Application.callBaseMethod(this, 'initialize');
    
                var handler = this.get_events().getHandler("init");
                if (handler) {
                    this.beginCreateComponents();
                    handler(this, Sys.EventArgs.Empty);
                    this.endCreateComponents();
                }
                this.raiseLoad();
                this._initializing = false;
            }
    
            Sys.Application._loadHandler = function Sys$_Application$_loadHandler() {
                if (this._loadHandlerDelegate) {
                    Sys.UI.DomEvent.removeHandler(window, "load",
                      this._loadHandlerDelegate);
                    this._loadHandlerDelegate = null;
                }
                this._initializing = true;
                this._doInitialize();
            }         
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      相关资源
      最近更新 更多