从服务器调用确认对话框 ASP.NET.并返回服务器上的选择



我是网络编程的新手。我有这个问题:

  1. 用户看到一个页面,然后单击"上传文档"。
  2. 文档已上载到服务器上,被读取,并且页面显示从文件中了解到的新信息。
  3. 用户可以单击"执行"按钮。这将调用服务器方法。
  4. 在服务器方法中有一个 if 语句。如果这是真的,是都好..否则,将向用户显示确认对话框。
    • 如果用户选择"否",则该过程结束。
    • 如果用户选择"是",则执行另一种不同的服务器方法,在此之后再次重复点 (d)。

第 1、2 和 3 点已完成。我对第四点有困难...

我想是因为我还没有完全清楚如何与服务器和客户端一起交互。我知道你不能直接从 C# 调用 JavaScript,反之亦然,但是有几种技术(如 Ajax)可以做到这一点......但这些我还不清楚。

这是我的代码示例:

上传文档.aspx

<script type="text/javascript" language="javascript">
    function ConfirmDialog() {
        if (confirm("You are a new. You wanna sign-in?") == true) {
            // call server method
        }
    }
</script>
...
<asp:Button ID="btnUpload" runat="server" Text="UPLOAD DOC" OnClick="btnUpload_Click" />

上传文档.aspx.cs

// ...
private bool btnUpload_Click(List<MyStuff> myList)
{
    List<MyStuff> vList = new List<MyStuff>();
    bool up = Upload(vList);
    // ...
}
private bool Upload(List<MyStuff> myList)
{
    bool registered;
    // ... other stuffs...
    if (registered == true)
    {
        // do things...
    }
    else
    {
        // from here should show the confirm dialog.
        System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "ConfirmDialog()", true);
    }
}

强调您可能已经知道的内容:C# 代码在服务器上运行,而 Javascript 在客户端上运行。
也就是说,您可以从服务器调用 Javascript 函数,方法是让它们在客户端呈现页面时运行。

我建议阅读有关ScriptManager类的信息,它将帮助您完成此任务。

更具体地说,像这样的东西可能是你想放在Upload函数的else紧固件中的东西:

ScriptManager.RegisterStartupScript(this, this.GetType(), "confirmDialog", "ConfirmDialog();", true);

关于生成从客户端到服务器的回发,请使用 doPostback 方法

最新更新