所以我有一个包含产品列表的网页。每个产品旁边都有一个超链接,用户单击该链接以生成Word文档,供用户查看。每个产品都有ID,尺寸等......
我有代码在后面的aspx.cs代码中执行,还有一个try-catch块,用于检查所选产品是否有大小。如果产品没有任何尺寸,那么我希望出现一个弹出消息框,提醒用户尚未记录产品的尺寸,并且无法生成文档。
我的问题是,我该如何做到这一点?我已经尝试了Response.Write(...)函数和Page.ClientScript.RegisterStartupScript(...)函数。两者都构建正常并执行但没有弹出消息。我知道我以前使用过Response.Write()函数,它在VS2013中工作但似乎在VS2015中无效。
以下是我的代码。任何帮助/建议都表示赞赏。
//Alert the user to fix the data if the parent sizes are missing from the Sizes column in ProductMart
try
{
//This is set to null to execute Catch block
parentSizeList = null;
pSizes = parentSizeList.Split(',');
foreach (var p in pSizes)
parentSizes.Add(p);
}
catch
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('TEST');", true);
Response.Write("<script type=\"text/javascript\">alert('The Measurement Sizes are missing in the Product Mart for the parent product. " +
" Please fix the data for Pack Number " + product.PackNumber + " to print inspection document');</script>");
}
答案 0 :(得分:0)
所以我找到了一种使用UpdatePanel执行此操作的方法。下面是我的.aspx页面中的代码,该页面使用javascript警报显示后面代码中定义的消息。我将UpdatePanel添加到我的.aspx页面的最底部。
<asp:UpdatePanel id="UpdatePanel1" class="noSizesUpdatePanel" runat="server">
<ContentTemplate>
<script type="text/javascript">
alert('<%=message%>');
</script>
</ContentTemplate>
</asp:UpdatePanel>
在我后面的代码中的Page_Load中,我做了一个UpdatePanel1.Visible = false
来隐藏警告框直到需要。
我在后面的代码中创建了一个公共属性public string message;
。
然后在我的try-catch块中:
try
{
//Do stuff
}
catch (Exception)
{
message = "Whatever you want your message to be";
UpdatePanel1.Visible = true;
}