私はこのような質問がすでにSOに頼まれていることを知っていますが、私もほとんどのものを通過しましたが、誰も私を満足させなかったので、添付されたコードです。実際に私はdatabaleからコードからjqueryギャラリーを構築しています。asp.netでpageload中に2回点火する方法
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DisplayHotProducts();
}
}
private void DisplayHotProducts()
{
var dt = ProductData.GetAllHotProducsts();
if (dt != null && dt.Rows.Count > 0)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(" <div id='spotlight_products' class='widget_box center_box'>");
sb.AppendLine("<div class='wintitle'>");
sb.AppendLine(" <div class='inner_wintitle'>");
sb.AppendLine(" Hot Products</div></div>");
sb.AppendLine("<div class='winbody'>");
sb.AppendLine("<div class='mall_focus' id='mall_focus'>");
sb.AppendLine("<a id='bp_carousel_prev'>prev</a>");
sb.AppendLine("<a id='bp_carousel_next'>next</a>");
sb.AppendLine("<div id='bp_carousel'>");
sb.AppendLine(" <div class='carousel_list'>");
for (int i = 0; i < dt.Rows.Count; i=i+5)
{
sb.AppendLine(" <div class='product_list'>");
sb.AppendLine("<div class='bestproduct_wrapper'> <div class='bestproduct'>");
sb.AppendLine(" <div class='icon_best'></div>");
sb.AppendLine("<ul>");
sb.AppendLine(" <li class='best_Img'><span></span><a href='#' target='_blank'> ");
sb.AppendLine(string.Format(" <img src='{0}' width='200' height='200' /></a></li>", dt.Rows[i]["ImagePath"]));
sb.AppendLine("</ul>");
sb.AppendLine(" <p class='product_name'>");
sb.AppendLine(string.Format("<a href='Products/{0}' target='_blank'>{1}</a></p>", dt.Rows[i]["Id"], dt.Rows[i]["Name"]));
sb.AppendLine("</div></div>");
for (int j = i+1; j <= 4; j++)
{
sb.AppendLine("<div class='product_item'>");
sb.AppendLine("<ul><li class='product_Img'>");
sb.AppendLine(string.Format("<a href='Products/{0}'><img src='{1}' width='70' height='70'/></a>", dt.Rows[j]["Id"], dt.Rows[j]["ImagePath"]));
sb.AppendLine("</li></ul>");
sb.AppendLine(string.Format("<p class='product_name'><a href='Products/{0}'>{1}</a></p>", dt.Rows[j]["Id"], dt.Rows[j]["Name"]));
sb.AppendLine("</div>");
}
}
sb.AppendLine(@" </div></div></div></div></div>");
ltlHotProducts.Text = sb.ToString();
}
}
}
の背後に私のコードだけで上記のコードを持っていると、ページの読み込みが二回発射される:コードを参照してください。
また、このiは、背後にあるコードからjQueryのスライドショーを構築して同様の機能を実行する3以上の同様の制御を持ってページ上に配置され、ユーザーコントロールの背後にあるコードです。しかし、上記の2つのユーザコントロールにはimgタグに関するいくつかの問題があります。その一部は画像が欠落しているためです。また、ユーザーがコントロールするページにはマスターページがあります。今私に解決策を提案してください。
だから、階層構造は、このようなものです:私は通常、二回発射するPageLoadのための2つの理由を見てきました
Master Page (master) -> Content Page (aspx) -> Has->3 UserControls (ascx)
どういうのですか? – Steven
aspxページでAutoEventWireupに設定されている値は何ですか? –
デフォルトではtrue –