良い。私が直面している問題は、独自のカスタムコントロールがあり、クエリを実行し、レコードを取得し、データに基づいてページに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);