0

每当在我的 Web 应用程序(带有 C#、Visual Studio 的 ASP.NET)中单击“保留”按钮时,应该会弹出一个小窗口,其中包含可供选择的详细选项(带有值、组合框等的下拉列表),带有“下一步”链接,最后是“完成”。更改这些控件中的值应该会更新我在数据库(Microsoft Sql Server)中的表。

你能给我指出一个详细而有用的资源/例子吗?我已经在使用以步骤/解释的形式编写的灵感书籍(Cristian Darie),但不包括刚刚描述的场景。我应该寻找什么?“在 Visual Studio 中使用弹出窗口”?我描述的是弹出窗口吗?

我不知道JavaScript,这里需要吗?最近在类、方法、存储过程、master、用户控件类型文件、通过 Visual Studio 类和方法处理 db 表等方面进行了很多练习,但对这些仍然很陌生(基本上一个月大)。非常感谢!

4

3 回答 3

2

没有必要使用 JavaScript,但如果你想要比普通的弹出窗口更花哨的东西,javascript 将是你的好朋友。在我看来,基本上有四种主要的方法:

1

使用“详细信息”创建一个新的 ASPX 文件,将查询字符串发送到详细信息视图的 url,以便将弹出窗口与主窗口中的数据连接起来。关键是html“a”标签的“target”属性。例如:

<a href="mynewwindow.aspx?i=3" target="_NEW">Details</a>

2

使用常规 javascript 创建一个带有一些自定义属性的弹出窗口(即弹出窗口的工具栏窗口大小等)。在 javascript 中查找 window.open。

例子:

<a href="#" onclick="window.open("details.aspx?i=3","mywindow","menubar=1,resizable=1,width=350,height=250");">Details</a>

3

使用 jQuery 使用灯箱以模式对话框方式打开弹出窗口。对于这个替代方案,我没有任何示例,但是 google jQuery lightbox,有很多。将其与 AJAX 调用一起使用并实现您的目标。

4

最后,使用 ASP.NET AJAX Control Toolkit(看这里 : http ://www.asp.net/ajaxlibrary/act.ashx )下载并安装,使用 ModalPopupExtender(教程在这里:http://www.asp。 net/ajaxlibrary/act_ModalPopup.ashx),在这种情况下,您在 <asp:Panel> 控件中设计“详细信息”视图,然后使用 CSS 和 ModalPopupExtender 显示和隐藏详细信息,看起来就像灯箱,但您不必为此选项创建单独的 ASPX 页面,但您可以使用相同的 ASPX。

我对所有四个选项都进行了很多工作,我倾向于最喜欢第 4 个选项,但我们都有自己的品味。

祝你好运,请随时询问更多详细信息。:)

于 2012-06-14T16:33:35.420 回答
1

让我们一步一步来。为了发送该信息,我认为最简单的方法是将参数存储为会话变量,然后在弹出窗口关闭时重新加载它们,您可以使用 Javascript 中的“onunload”事件重新加载父窗口,例如

<body onunload="window.opener.location.reload(true);"> 

每当用户关闭弹出窗口时,这本身就会重新加载父窗口。如果您希望它在用户保存更改时关闭(并且您的会话变量已设置),请使用此代码重新加载父窗口并关闭弹出窗口。将此代码放在后面的代码中,就在保存数据的方法结束之前:

Page.ClientScript.RegisterStartUpScript(this.GetType(),"close","<script language=javascript>window.opener.location.reload(true);self.close();</script>");

要学习 javascript,请访问 codeproject.com,他们有很多关于 javascript(除其他外)的文章,通常带有示例代码。:)

我在这里做了一个简单的例子:http ://www.4shared.com/zip/LPtR1gbx/pop.html

于 2012-06-14T21:20:57.773 回答
0

我建议使用<div>元素而不是实际的新浏览器窗口。

它消除了将上下文信息从弹出窗口传递回原始窗口的需要,以及与之相关的所有复杂性(包括用户无意中单击弹出窗口、多次单击并因此弹出弹出窗口的多个副本,等等)。

通过使用<div>“弹出”,通过 CSS 或 JavaScript 的受控可见性,整个上下文保持在同一个网页上,使整体生活变得更加轻松。

于 2012-06-14T16:54:34.113 回答