5

良い。私が直面している問題は、独自のカスタムコントロールがあり、クエリを実行し、レコードを取得し、データに基づいてページにhtmlコントロールを動的に追加することです。

今、いくつかの動的なJavaScriptを追加する問題があります

私はリテラルコントロールの助けを借りてこれを行います。

<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>

これは魅力のように機能します

<script language="javascript" type="text/javascript">
// <![CDATA[
    Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
    $(WireEvents_<%=this.ID%>); // handle page load wiring

    function WireEvents_<%=this.ID%>() {
        <asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
    }

// ]]>
</script>

コードビハインドから動的にリテラルテキストを追加します。

ただし、コントロールを更新パネルに配置すると、ポストバックはスクリプトを更新しません。

編集:Sys.Application.add_load必要な機能をアップデートパネルでうまく再配線します。問題は、リテラルの代わりに必要なスクリプトが、updatepanelにあるときに更新されないことです。

ClientScript.RegisterStartupScriptを試しましたが、リテラル制御のトリックと同じ効果があります。何か助けはありますか?

---------------------------解決済み(tnxからPranay Rana)---------------- ------------------

ascx側のリテラルを削除しました。だけでなく、Sys.Application.add_load

今ではコードビハインドにのみあります。私を失望させたのはJQueryのことでした。

this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
                                "$(WireEvents_" + this.ID + ");" + 
                                "function WireEvents_" + this.ID + "(){"+
                                "    alert('stuff');");

this.strBuilderJS.Append(       "}</script>");

その後

ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
4

3 に答える 3

4

スクリプトを登録するために利用しScriptManager.RegisterStartupScript()てください...問題を解決する可能性があります...

これで問題が解決することを確認してください:非同期ポストバック中にRegisterStartupScriptを使用してプログラムでJavaScriptを追加します

于 2011-06-02T06:29:09.363 に答える
3

別のアプローチをお勧めします。任意の言語の動的JavaScriptを作成します。動的ファイルへの参照を作成します。この例では、.NETを使用します

  1. test.aspxページを作成し、次のスクリプトを追加します。

    <script type="text/javscript" src="js/foo.aspx"></script>

  2. ページの応答が正しいコンテンツタイプであることを確認してください。したがって、このインスタンスでは、foo.aspxのページロードコードビハインドにこれを追加します。

    Response.ContentType = "application/javascript";

  3. foo.aspx htmlビューで、javascriptコードを追加します。

    alert("<%=DateTime.Now%>");

  4. test.aspxページを参照すると、現在の日付のアラートが表示されます。

ここから先に進むことができるはずです。目標は、JavaScriptファイルを静的ページから分離することです。

ハッピーコーディング。

于 2012-11-28T22:40:50.683 に答える
0

アンカータグクリックでASPボタンコントロールのテキストを変更する方法

下にASPボタンがあり、アンカータグをクリックするとテキストが変更されます

<asp:Button ID="btn_Add" runat="server" CssClass="button2" onclick="btn_Add_Click"/>

次の2つのアンカータグがあります

<a href = "javascript:void(0)" class="toplink" onclick = "changeText1();">Add New</a>

<a href = "javascript:void(0)" class="toplink" onclick = "changeText2();">Add New</a>

次に、スクリプトタグに次のコードを追加します

<script type="text/javascript" language="javascript">
    function changeText1() {
        document.getElementById("lbl_header").innerText = 'Add New Teacher';
        document.getElementById("btn_Add").value = 'Add';
    }
    </script>

     <script type="text/javascript" language="javascript">
     function changeText2() {
         document.getElementById("lbl_header").innerText = 'Delete Teacher';
         document.getElementById("btn_Add").value = 'Delete';
     }
    </script>
于 2014-01-04T12:09:39.960 に答える