在 ASP.NET 1.1和 2.0中,ModalDialogHelper控件

分享于 

5分钟阅读

Web开发

  繁體

介绍

本文展示了服务器端控件在模式对话页和它的调用程序页面之间传输数据的实现。

几天前我写了一篇"ASP.NET 1.1 模式页面和调用程序页之间的传输参数"的文章。 在这篇文章中,我展示了如何将参数传输到模态对话框,并在关闭对话框时获取返回值。 现在,我将它包装到 ASP.NET 1.1的服务器端控件中。 如果你想了解实现这个问题的方法,你可以查看我以前的文章,其中给出了 上面的链接。 现在,只要跟随我来了解如何使用这个控件:- )。 下载源代码并编译它。 创建一个名为TestDialogHelper的新web应用程序。 在to窗口的设计中,右键单击工具箱并选择"添加/删除项目"添加已经编译的" dialoghelpercontrol.dll"。 然后,将在你的工具箱中显示一个 icon,如下所示:

将它放到页面上,现在你将看到控件如何查看设计时间:

我们想在 WebForm1.aspx. 上单击 Button1 时调用 WebForm2.aspx 作为模式对话框,因此 WebForm1.aspx 是一个调用程序页面。 确定,在属性网格中将它的ParentType 设置为" InvokerPage":

在事件中,你应该编写代码来打开对话框页面,该控件具有名为" ShowDialog"的打开方法,你可以在事件" OnDialogReturn"中获取返回值。 请参阅下面的代码:

privatevoid DialogHelperControl1_OnDialogReturn(string str)
{
 this.TextBox1.Text = str;
}privatevoid Button1_Click(object sender, 
 System.EventArgs e)
{
 this.DialogHelperControl1.ShowDialog("WebForm2.aspx",
 TextBox2.Text,500,300,false);
}

在这里,你的调用程序页面已经完成。 那么简单现在,你应该构建你的对话框页面" webform2.aspx"。 在这里页面中,我们实现一个简单的Add 方法,并在调用程序关闭时将之返回到调用程序页。 在对话框页面中设置对话框 helper 控件的属性,如下所示:

在 WebForm2.aspx, 中,你可以从事件" OnArgumentSubmit"中的调用程序页面获取参数。 当在这里页面中完成所有操作时,应调用"控件的ReturnAndCloseDialog"方法或者" CloseDialog"方法返回到调用程序页。

privatevoid Button1_Click(object sender, System.EventArgs e)
{
 TextBox3.Text = (Convert.ToInt32(TextBox1.Text)+
 Convert.ToInt32(TextBox2.Text)).ToString();
}privatevoid Button2_Click(object sender, System.EventArgs e)
{
 this.DialogHelperControl1.ReturnAndCloseDialog(TextBox3.Text);
}privatevoid Button3_Click(object sender, System.EventArgs e)
{
 this.DialogHelperControl1.CloseDialog();
}privatevoid DialogHelperControl1_OnArgumentSubmit(string str)
{
 this.TextBox1.Text = str;
}

在这里,转移的所有过程都完成了。 如果你下载演示项目,你将在未打包文件夹中找到两个子文件夹。 使文件夹"testdialoghelper"作为与IIS中相同 NAME的虚拟文件夹,并且它的他文件夹"dialoghelpercontrol"中的控件项目。 打开解决方案,现在你可以编译代码并运行它。

[Updated]: 我的朋友问我为什么不在对话返回元素的值,因为在很多情况下,我们只需要返回值。 <输入> ) 在客户端中,我添加了两个属性来实现这里功能。 AutoPostBackWhenDialogReturn"控制当用户关闭对话框时页面是否会提交。 ClientScriptOnDialogReturn"是当用户关闭对话框时执行的客户端脚本代码。 你不会用 <脚本></脚本> 包装代码。实际上,它是客户端函数" __ClientScriptOnDialogReturn"的代码,它是在控件的" OnLoad"事件中注册的。

请让我知道本文中是否有 Bug。 欢迎你的反馈和建议。

历史记录

  • 2005-08-22: 创建版本 1.
  • 2005-08-25: 添加了允许用户在对话框返回的客户端上执行脚本的函数。
  • 0: 添加了允许用户通过两种方式打开对话框的属性: 模态和无模式。

控制  asp  asp-net  modal  
相关文章