4

私はかなり長い間この問題を抱えていて、さまざまな解決策を試し、さまざまなタグで Webconfig を編集しました。

Web ページで Updatepanels、タイマー、および AJAX を使用しています (エラーをスローするのは AJAX でしょうか?)

どこでトレースすればよいかわからないため、問題を定義する方法が本当にわかりません。

マスターページの本文にオンロードを配置しました(それが正しいかどうかはわかりません)エラーをスローすると思われるマークアップコードと私のJavascriptコードを次に示します。

マスターページ:

<!DOCTYPE html>
<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <title><%: Page.Title %> - </title>
    <link href="~/Content/Site.css" rel="stylesheet" /> 
    <link href="~/Content/BarChart.css" rel="stylesheet" />
    <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <asp:PlaceHolder runat="server">        
        <script src="<%: ResolveUrl("~/Scripts/_references.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/modernizr-2.5.3.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/jquery-1.7.1.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/jquery-1.7.1.min.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/jquery-ui-1.8.20.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/jquery-ui-1.8.20.min.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/ButtonManager.js") %>"></script>
        <script src="<%: ResolveUrl("~/Scripts/BarChart.js") %>"></script>
    </asp:PlaceHolder>
    <meta name="viewport" content="width=device-width" />
    <asp:ContentPlaceHolder runat="server" ID="HeadContent" />
</head>
<body >
    <form runat="server">
    <asp:ScriptManager runat="server">
        <Scripts>
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="jquery.ui.combined" />
        </Scripts>
    </asp:ScriptManager>
    <header>
        <div class="content-wrapper">
            <div class="float-left">
                    <asp:ImageButton ID="Logo" cssclass="site-title" runat="server" PostBackUrl="~/" ImageUrl="~/Images/Logo.png" />
            </div>
            <div class="float-right">
                <section id="login">
                    <asp:LoginView runat="server" ViewStateMode="Disabled">
                        <AnonymousTemplate>
                            <ul>
                                <li><a id="registerLink" runat="server" href="~/Account/Register.aspx">Register</a></li>
                                <li><a id="loginLink" runat="server" href="~/Account/Login.aspx">Log in</a></li>
                            </ul>
                        </AnonymousTemplate>
                        <LoggedInTemplate>
                            <p>
                                Hello, <a runat="server" class="username" href="~/Account/Manage.aspx" title="Manage your account">
                                    <asp:LoginName runat="server" CssClass="username" />
                                </a>!
                                <asp:LoginStatus runat="server" LogoutAction="Redirect" LogoutText="Log off" LogoutPageUrl="~/" />
                            </p>
                        </LoggedInTemplate>
                    </asp:LoginView>
                </section>
                <nav>
                    <ul id="menu">
                        <li><a runat="server" href="~/">Home</a></li>
                        <li><a runat="server" href="~/Barchart.aspx">About</a></li>
                        <li><a runat="server" href="~/Contact.aspx">Contact</a></li>
                    </ul>
                </nav>
            </div>
        </div>
    </header>
    <div id="body">
        <asp:ContentPlaceHolder runat="server" ID="FeaturedContent" />
        <section class="content-wrapper main-content clear-fix">
            <asp:ContentPlaceHolder runat="server" ID="MainContent" />            
        </section>
    </div>
    <footer>
        <div class="content-wrapper">
            <div class="float-left">
                <p>&copy; <%: DateTime.Now.Year %> - My ASP.NET Application</p>
            </div>
        </div>
    </footer>  
    </form>
</body>
</html>

コンテンツページ:

<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
</asp:Content>
<asp:Content runat="server" ID="BodyContentHome" ContentPlaceHolderID="MainContent" >
    <asp:Panel ID="UpdatepanelWrapper" CssClass="Updatepanelwrapper" runat="server">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" >
            <ContentTemplate>
                <asp:PlaceHolder runat="server" ID="WholeWrapper">

                    <asp:PlaceHolder runat="server" ID="QuestionWrapper">
                        <asp:PlaceHolder runat="server" ID="LabelQuestion"></asp:PlaceHolder>
                        <asp:PlaceHolder runat="server" ID="Question"></asp:PlaceHolder>                        
                    </asp:PlaceHolder>
                </asp:PlaceHolder>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btnAdd" EventName="Click" />
                <asp:AsyncPostBackTrigger ControlID="btnDelete" EventName="Click" />
            </Triggers>

        </asp:UpdatePanel>    
        <asp:Panel ID="ButtonPanel" CssClass="ButtonPanel" runat="server">
            <asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~/Images/Deleteicon.png" CssClass="DeleteButtonHidden" OnClientClick="btnDelete_Click" />
            <asp:ImageButton ID="btnAdd" runat="server" ImageUrl="~/Images/Addicon.png" CssClass="AddButtonMoreMargin" OnClientClick="btnAddQuestion_Click" />
        </asp:Panel>
        </asp:Panel>  
    <asp:Button ID="btnSendQuestions" runat="server" Text="Skapa Föreläsning och frågor" OnClick="btnSendQuestions_Click" ValidationGroup="QuestionGroup" />

</asp:Content>

ジャバスクリプトコード:

if (window.addEventListener) window.addEventListener("load", load(), true);
else window.onload = load();

function load() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}

function EndRequestHandler(sender, args) {
// NOT IMPORTANT
}
4

6 に答える 6

9

問題を解決しました。おもう。DOM がビルドされる前に関数が実行されることはわかっていました。

だから私はちょうどこれをやった

$(document).ready(function () {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});

1 つの問題がまだ存在します。Imagebutton btnAdd をクリックすると、コンソールには次のように表示されます。

Uncaught ReferenceError: btnAddQuestion_Click is not defined
onclick

これにより、この ImageButton が記述されているコード行に移動します。

Internet Explorer はこれをまったく好みません。しかし、他のブラウザは、Dev-Console にエラー メッセージが表示されても、何もなかったかのように続行します。

ボタン機能は次のように機能します。唯一の問題はエラーです。

編集:これは解決済みです。「OnClientClick」を使用していました。ImageButtons で。OnClick に変更したところ、この問題は解決しました。これら2つの違いはわかりませんが、機能する限り幸せです.

于 2013-03-15T22:57:11.570 に答える
1

私の場合、関数/メソッド OnPreRenderComplete のオーバーライドされたバージョンで MyBase.OnPreRenderComplete(e) への呼び出しが欠落していることが原因であることがわかりました。

MyBase.OnPreRenderComplete(e) への呼び出しを含めることで、すべてがうまく機能します。MyBase.OnPreRenderComplete(e) への呼び出しが欠落している場合、「Uncaught ReferenceError: Sys is not defined」というエラーが表示され、多くのことが正しく機能しません。

Protected Overrides Sub OnPreRenderComplete(ByVal e As EventArgs) 'MyBase.OnPreRenderComplete(e) ... End Sub

于 2013-10-30T00:43:44.810 に答える
0

私の場合、問題は、部分的なポストバック後にグリッドビューのテーブルヘッダーを保持するために次のコードを追加したことでした:

protected override void OnPreRenderComplete(EventArgs e)
{
    if (grv.Rows.Count > 0)
    {
        grv.HeaderRow.TableSection = TableRowSection.TableHeader;
    }
}

このコードを削除すると、問題が停止しました。

于 2016-09-21T14:19:48.033 に答える
0

asp.net ページの場合

ページに Scriptmanager を追加するだけです。

追加方法 ツールバー (Visual Studio の左側) に移動 --> AJAX 拡張機能 --> Scriptmanager --> ダブルクリックまたはドラッグ アンド ドロップ

:)

于 2015-09-15T12:24:52.787 に答える