弹出窗口中的GridView控件

在ASP.NET应用程序中,弹出窗口是一种常见的用户界面元素,用于显示额外信息或提供交互功能。GridView控件则用于显示和操作数据表。本文将介绍如何在弹出窗口中使用GridView控件,并展示如何在父页面和弹出页面之间传递数据。将使用两种形式的表单:父页面为parent.aspx,弹出页面为popup.aspx。注意,parent.aspx页面是从某个母版页继承而来的。本文提供了VB.NET和C#.NET两种语言的代码示例。

首先,来看父页面的HTML代码。在父页面中,将定义一个文本框和一个按钮,用户点击按钮时将打开弹出窗口。同时,将使用JavaScript函数OpenPopup()来控制弹出窗口的打开。

<script type="text/javascript"> function OpenPopup() { window.open("popup.aspx", "List", "scrollbars=no,resizable=no,width=400,height=280"); return false; } </script> <asp:TextBox ID="txtPopupValue" runat="server" Width="327px"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Show List" />

接下来是父页面的后端代码。无论是VB.NET还是C#.NET,都需要在页面加载时(非回发)添加按钮的点击事件处理程序。

// VB.NET If Not IsPostBack Then Me.Button1.Attributes.Add("onclick", "javascript:return OpenPopup();") End If // C#.NET if (!IsPostBack) { this.Button1.Attributes.Add("onclick", "javascript:return OpenPopup();"); }

然后是弹出页面的HTML代码。在弹出页面中,将定义一个GridView控件,用于显示数据。同时,将为GridView的每一行添加一个按钮,用户点击按钮时将选择该行的数据。

<script language="javascript"> function GetRowValue(val) { // 硬编码值以简化代码。 // 也可以将ControlID作为查询字符串传递给弹出窗口 window.opener.document.getElementById("ctl00_ContentPlaceHolder1_TextBox2").value = val; window.close(); } </script> <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"> <Columns> <asp:TemplateField> <AlternatingItemTemplate> <asp:Button ID="btnSelect" runat="server" Text="Select" /> </AlternatingItemTemplate> <ItemTemplate> <asp:Button ID="btnSelect" runat="server" Text="Select" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> // VB.NET Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If (e.Row.RowType = DataControlRowType.DataRow) Then ' 假设所需的值列是GridView中的第二列 DirectCast(e.Row.FindControl("btnSelect"), Button).Attributes.Add("onclick", "javascript:GetRowValue('" & e.Row.Cells(1).Text & "')") End If End Sub // C#.NET protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { if ((e.Row.RowType == DataControlRowType.DataRow)) { // 假设所需的值列是GridView中的第二列 ((Button)e.Row.FindControl("btnSelect")).Attributes.Add("onclick", "javascript:GetRowValue('" + e.Row.Cells[1].Text + "')"); } }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485