如何跟踪用户在运行时从c#代码生成的确认框的响应?

时间:2012-04-07 13:29:33

标签: c# asp.net

我试图从c#代码后面的文件中获取用户确认,以确认用户是否想要覆盖取消操作的服务器上的现有文件,但到目前为止没有运气。

这是我的代码:

if (File.Exists(filePath))
{
   string alertMsg = @"confirm('A File already exists with the same name. \n Would you like to overwrite the existing file ?');";
   ScriptManager.RegisterStartupScript(this, this.GetType(), "Test", alertMsg, true);
}
else
{
   fuPSD.SaveAs(filePath);
}

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:0)

类似的东西:

创建

<asp:hiddenField id="hf" />* in the aspx file
also put on the JS location a Declaration : 

var answer=null;

回到服务器:

string alertMsg = @"if (confirm('A File already exists with the same name. \n Would you like to overwrite the existing file ?')==true) answer='1'; else answer='0';";

现在在服务器端: 阅读:

hf.value

答案 1 :(得分:0)

如果文件存在,该代码将弹出消息,如果不存在则保存。

但是您需要对客户端的确认对话框结果采取一些操作,并触发回发或其他服务器调用以在覆盖的情况下执行操作。

答案 2 :(得分:0)

问题是,您的JavaScript注册会要求用户确认在下一页加载后覆盖文件。这就产生了一个问题,即告知用户是否已确认用户是否已确认或拒绝服务器。

在过去,我使用隐藏字段来切换true / false以显示来自服务器端的弹出窗口。这使我能够将事件连接到后面的代码上的委托(即使用我自己的按钮创建我自己的确认框)。你仍然可以在没有它的情况下做到这一点,我发现它会导致很多麻烦且难以跟踪脚本如callin __doPostback手动。