4

asp:content 内に div があります:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div id="slidebar" style="display:none;"  >There are some pending approvals.Please    approve    by the 25th of this month

<a href="#" id="slink" style="margin-left:10px;" onclick="fade('slidebar');">Click here to   close <sup style="font:caption;color:#373636;">X</sup></a>
</div>

<script language="javascript" type="text/javascript">
 function showbanner()
  {
   document.getElementById("slidebar").style.visibility="visible";
  }
</script>
<\asp:content>

および背後にあるコード:

 ClientScript.RegisterClientScriptBlock(Page.GetType(), "displaybanner", "return  showbanner();", true);

コード ビハインドから showbanner 関数を呼び出すことはできません。また、registerclientscript を使用して showbanner 内のステートメントを直接呼び出しても、呼び出されません。

助けてください

4

3 に答える 3

4

プロパティvisibilitydisplayは同じではありません。js 関数を次のように変更します。

function showbanner()
{
    document.getElementById("slidebar").style.display="block";
}

コードビハインドも変更します

ClientScript.RegisterStartupScript(Page.GetType(), "displaybanner", "showbanner();", true);

そのため、ページが読み込まれた後にスクリプトが実行されます。そうしないと、要素が見つかりません。

于 2011-03-03T20:02:28.470 に答える
0

登録スクリプトが機能しない理由はわかりませんが、JavaScript 呼び出しをスクリプト ブロック内のページに直接配置しようとしましたか? それが機能する場合は、ページの下部にあるパネルにスクリプト ブロックをラップし、visible="false" を指定します。コード ビハインドで、動作させたいと判断したら、可視性を true に設定します。

Jquery を使用している場合は、スクリプト ブロックの内容も次のようにラップします。

$(document).ready(function() {
    //javascript call here
});

ページが実際に処理できるようになる前に呼び出されないようにするためです。

もちろん、これはすべて、関数呼び出しが適切であり、問​​題がクライアント スクリプトの登録にあることを前提としています。

于 2011-03-03T19:55:31.013 に答える
0

わかりました、私のチーム メンバーの 1 人である Mahi が解決策を思いつきました... CleientScript.reg ではなく.....

Page.RegisterStartupScript を使用しましたが、正常に動作します :))

于 2011-03-03T20:33:50.560 に答える