我有一个asp:Button,它会在OnClick事件上触发功能背后的代码。在该OnClick事件中,发生了几件事,在这些事情中,我在数据库中进行了检查,是否需要询问用户是还是否的问题。为此,我需要一个消息框。首先,我是这样做的:
protected void MyButton_Onclick(object sender, EventArgs e)
{
// lots of stuff happening
bool iNeedToAskTheUser = INeedToAskTheUser(stuff);
if (iNeedToAskTheUser)
{
DialogResult result = MessageBox.Show("Do you want to fix all objects?", "Fix objects", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) // do stuff
}
// some other stuff
}
这在本地运行良好,但在部署时无法正常运行,因此我认为我需要使用ScriptManager.RegisterStartupScript。我可以只在ASPX页面上添加javascript,以触发一个对话框并将响应保存在一个我可以查看的隐藏控件中,但是除非希望这样做,否则我不想触发该对话框,我之前已经进行过检查我在上面的代码中执行DialogResult。因此,当用户单击按钮时,我无法立即执行该操作。
有什么办法可以在_OnClick代码的“中间”使用ScriptManager.RegisterStartupScript,以便我可以选择是否实际显示按钮,然后还可以知道用户是否单击了“是”或“不是”(最好是)而不进行回发?
答案 0 :(得分:0)
我一直在思考和测试两种不同的解决方案:
我肯定使用Ajax或jQuery会有很好的解决方案,但这是一个相当简单的函数,开发不需要花费太长时间,因此这超出了范围。
相反,我将提供一个解决方案,在该解决方案中,我知道用户在单击按钮之前将对问题做出什么反应。 (尽管默默地喃喃地说:“现在是2019年,没有一种好的方法可以从.Net Web项目中的代码后面触发是/否对话框。”。我需要回到不使用Web的方式。)