1

我正在用 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。

谢谢

4

2 回答 2

0

我不确定这是否是因为您在将代码发布到此处之前已对其进行了清理,但您缺少标签。

您的 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>
于 2013-01-29T14:13:04.330 回答
0

好的,整理好了。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>
于 2013-02-06T15:17:09.700 回答