0
1回の呼び出しでJavaScriptメソッド(ユーザーコントロールから)を呼び出すための.net Webフォームメソッドがありますが、最初の呼び出しのみがトリガーされます。 バックエンド・コードは:バックエンドからJavaScriptメソッド呼び出しは、ScriptManagerを使用して1回のみ呼び出すことができます
bool isAddOnsExisting = priceSummaryList.Any(x => x.ItemName == "AAA");
UcSummary.setPanelVisibility(isAddOnsExisting, "AAAPanel");
bool isControlExisting = priceSummaryList.Any(x => x.ItemName == "BBB");
UcSummary.setPanelVisibility(isControlExisting, "BBBPanel");
方法 'UcSummary' である:
public void setPanelVisibility(bool isExisting, string itemTitle)
{if (isExisting)
{ScriptManager.RegisterStartupScript(Page, GetType(),
"setVisibility","updatePanelVisibility('1','" + itemTitle + "');", true);}
else
{ScriptManager.RegisterStartupScript(Page, GetType(),
"setVisibility","updatePanelVisibility('0', '" + itemTitle + "');", true);}}
JavaScriptの方法がある:
function updatePanelVisibility(isExisting, itemPanel)
{
var theItemPanel = "#" + itemPanel;
if (isExisting == '1') {
$(theItemPanel).fadeIn();
}
else {
$(theItemPanel).hide();
}
}
私のためにのみ第一の方法を発見しました'AAA'がトリガーされますが、 'BBB'は無視されます。誰もその理由を助言できますか?ありがとう!
私に、呼び出し方法を変更した:(isExisting) { ScriptManager.RegisterClientScriptBlock(ページ、メソッドGetType()、 "setControlVisibility2"、 "updateControlPanelVisibility( '1'、 '" + itemTitle + "'場合) 。 "、真);他 } { ScriptManager.RegisterClientScriptBlock(ページ、メソッドGetType()、 "setControlVisibility3"、 "updateControlPanelVisibility( '0'、 '" + itemTitle + "');"、TRUE)。 } これはAAAに対して1回だけ実行されます。 – DennisL
私は "Script" + Guid.NewGuid()としてキーを追加し、それは動作します!ありがとう! – DennisL