如何创建一个用弹出窗口来查看详细信息的超链接列
点击次数:18 次 发布日期:2008-11-26 11:11:11 作者:源代码网
|
源代码网推荐 要求我们给出一个例子来说明如何在DataGrid中设置一个当用户点击时能够弹出 源代码网推荐 显示其详细信息的新窗口的超链接列。在我们给他回复之前,他已经给我们提供了 源代码网推荐 一种方法,并建议我们写篇教程。于是有了这篇文章。这篇文章包含了两个webforms和一个css第一个webform包含了一个DataGrid,它显示了Northwind数据库中的一列产品还有写着"SeeDetails"的超链接。只要点击了这个链接,就会调用JavaScript的 Window.Open方法来打开一个新的窗口。在一个Url中包含了用户想详细了解的产品的ProductId的Query String 参数。在第二个Webform里,是另一个DataGrid,它显示了用户选择的产品的所有详细信息。现在让我们来看看WebForm1.aspx和 WebForm1.aspx.cs。 源代码网推荐 源代码网推荐 WebForm1.aspx 源代码网推荐 <%@ Page language="c#" AutoEventWireup="false" Inherits="HowTos.DataGrid.PopupWindow.WebForm1" %> 源代码网推荐 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 源代码网推荐 <HTML> 源代码网推荐 <head> 源代码网推荐 <LINK REL="stylesheet" TYPE="text/css" HREF="StyleSheet1.css"></LINK> 源代码网推荐 </head> 源代码网推荐 <body> 源代码网推荐 <center> 源代码网推荐 <form runat="server" ID="Form1"> 源代码网推荐 <asp:datagrid id="DataGrid1" runat="server" Font-Size="12" AutoGenerateColumns="False"> 源代码网推荐 <Columns> 源代码网推荐 <asp:BoundColumn DataField= "ProductID" HeaderText= "Product ID" HeaderStyle-CssClass="HEADERSTYLE" ItemStyle-CssClass="ITEMSTYLEDEFAULT" /> 源代码网推荐 <asp:BoundColumn DataField="ProductName" HeaderText="ProductName" HeaderStyle-CssClass="HEADERSTYLE" ItemStyle-CssClass="ITEMSTYLEDEFAULT"/> 源代码网推荐 <asp:hyperlinkcolumn DataTextFormatString="ShowDetails..." DataTextField="ProductID" DataNavigateUrlField="ProductID" DataNavigateUrlFormatString="javascript:varwin=window.open("WebForm2.aspx?ProductID={0}",null,"width=692,height=25");" HeaderText="See Details" HeaderStyle-CssClass="HEADERSTYLE" ItemStyle-CssClass="ITEMSTYLEHYPERLINK" /> 源代码网推荐 </Columns> 源代码网推荐 </asp:datagrid> 源代码网推荐 </form> 源代码网推荐 </center> 源代码网推荐 </body> 源代码网推荐 </HTML> 源代码网推荐 源代码网推荐 源代码网推荐 WebForm1.aspx.cs 源代码网推荐 using System; 源代码网推荐 using System.Collections; 源代码网推荐 using System.ComponentModel; 源代码网推荐 using System.Data; 源代码网推荐 using System.Data.SqlClient ; 源代码网推荐 using System.Drawing; 源代码网推荐 using System.Web; 源代码网推荐 using System.Web.SessionState; 源代码网推荐 using System.Web.UI; 源代码网推荐 using System.Web.UI.WebControls; 源代码网推荐 using System.Web.UI.HtmlControls; 源代码网推荐 源代码网推荐 namespace HowTos.DataGrid.PopupWindow 源代码网推荐 { 源代码网推荐 源代码网推荐 public class WebForm1 : System.Web.UI.Page 源代码网推荐 { 源代码网推荐 protected System.Web.UI.WebControls.DataGrid DataGrid1; 源代码网推荐 源代码网推荐 #region User Defined Code 源代码网推荐 源代码网推荐 private void Page_Load(object sender, System.EventArgs e) 源代码网推荐 { 源代码网推荐 源代码网推荐 if ( ! this.IsPostBack ) 源代码网推荐 this.BindData(); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 protected void BindData() 源代码网推荐 { 源代码网推荐 源代码网推荐 SqlCommand cmd = new SqlCommand( "SELECT TOP 10 ProductID, ProductName FROM Products", con("Server=LocalHost; DataBase=Northwind; TRUSTED_CONNECTION=TRUE")); 源代码网推荐 this.DataGrid1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection); 源代码网推荐 this.DataGrid1.DataBind(); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 protected SqlConnection con(System.String ConnectionString ) 源代码网推荐 { 源代码网推荐 源代码网推荐 SqlConnection c = new SqlConnection( ConnectionString ); 源代码网推荐 c.Open(); 源代码网推荐 return c; 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region Web Form Designer generated code 源代码网推荐 源代码网推荐 override protected void OnInit(EventArgs e) 源代码网推荐 { 源代码网推荐 源代码网推荐 InitializeComponent(); 源代码网推荐 base.OnInit(e); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 private void InitializeComponent() 源代码网推荐 { 源代码网推荐 源代码网推荐 this.Load += new System.EventHandler(this.Page_Load); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 其实这两个文件没有什么难点,除了DataNavigateUrlFormatString,你注意到我直接把JavaScript window.open写在里面(注意:我也可以建一个js文件或者在WebForm中使用<script>< /script>,我直接写是为了简单)这个Javascript代码应该对大家来说很熟悉,所以我也不深入讨论它。它的作用就是在新窗口中打开 WebForm2.aspx使用ProductId参数。这个值是来自我们的数据源。我们来看看webform2.aspx和 webform2.aspx.cs。 源代码网推荐 源代码网推荐 WebForm2.aspx 源代码网推荐 <%@Page language="c#" AutoEventWireup="false" Inherits="HowTos.DataGrid.PopupWindow.WebForm2" %> 源代码网推荐 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 源代码网推荐 <html> 源代码网推荐 <head> 源代码网推荐 <title>Product Details</title> 源代码网推荐 <LINK REL="stylesheet" TYPE="text/css" HREF="StyleSheet1.css"></LINK> 源代码网推荐 </head> 源代码网推荐 <body> 源代码网推荐 <asp:DataGrid HeaderStyle-CssClass="HEADERSTYLE" ItemStyle-CssClass="ITEMSTYLEDEFAULT" runat="server" id="DataGrid1" Font-Size="8" Height="50" Width="675"></asp:DataGrid> 源代码网推荐 <p align="center"> 源代码网推荐 <a href="JavaScript:window.close()">close window</a> 源代码网推荐 </p> 源代码网推荐 </body> 源代码网推荐 </html> 源代码网推荐 源代码网推荐 WebForm2.aspx.cs 源代码网推荐 using System; 源代码网推荐 using System.Collections; 源代码网推荐 using System.ComponentModel; 源代码网推荐 using System.Data; 源代码网推荐 using System.Data.SqlClient ; 源代码网推荐 using System.Drawing; 源代码网推荐 using System.Web; 源代码网推荐 using System.Web.SessionState; 源代码网推荐 using System.Web.UI; 源代码网推荐 using System.Web.UI.WebControls; 源代码网推荐 using System.Web.UI.HtmlControls; 源代码网推荐 源代码网推荐 namespace HowTos.DataGrid.PopupWindow 源代码网推荐 { 源代码网推荐 源代码网推荐 public class WebForm2 : System.Web.UI.Page 源代码网推荐 { 源代码网推荐 protected System.Web.UI.WebControls.DataGrid DataGrid1; 源代码网推荐 源代码网推荐 #region User Defined Code 源代码网推荐 源代码网推荐 private void Page_Load(object sender, System.EventArgs e) 源代码网推荐 { 源代码网推荐 if ( ! this.IsPostBack ) 源代码网推荐 this.BindData(); 源代码网推荐 } 源代码网推荐 源代码网推荐 protected void BindData() 源代码网推荐 { 源代码网推荐 SqlCommand cmd = new SqlCommand( "SELECT * FROM Products WHERE ProductID = @ProductID", con("Server=LocalHost; DataBase=Northwind; TRUSTED_CONNECTION=TRUE")); 源代码网推荐 cmd.Parameters.Add(new SqlParameter("@ProductID", SqlDbType.VarChar, 200)); 源代码网推荐 cmd.Parameters["@ProductID"].Value = Request["ProductID"].ToString(); 源代码网推荐 this.DataGrid1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection); 源代码网推荐 this.DataGrid1.DataBind(); 源代码网推荐 } 源代码网推荐 源代码网推荐 protected SqlConnection con(System.String ConnectionString ) 源代码网推荐 { 源代码网推荐 源代码网推荐 SqlConnection c = new SqlConnection( ConnectionString ); 源代码网推荐 c.Open(); 源代码网推荐 return c; 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region Web Form Designer generated code 源代码网推荐 源代码网推荐 override protected void OnInit(EventArgs e) 源代码网推荐 { 源代码网推荐 源代码网推荐 InitializeComponent(); 源代码网推荐 base.OnInit(e); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 private void InitializeComponent() 源代码网推荐 { 源代码网推荐 源代码网推荐 this.Load += new System.EventHandler(this.Page_Load); 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 webform2.aspx也是相当的简单。其中只有一个绑定到SqlDataReader的DataGrid。SqlDataReader通过Query string参数获得产品的数据。 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
