前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何创建一个用弹出窗口来查看详细信息的超链接列

如何创建一个用弹出窗口来查看详细信息的超链接列

作者头像
Java架构师必看
发布2020-10-26 17:07:17
1.8K0
发布2020-10-26 17:07:17
举报
文章被收录于专栏:Java架构师必看

 如何创建一个用弹出窗口来查看详细信息的超链接列出处:www.dotnetjunkie.com   JavaScript

强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

如何创建一个用弹出窗口来查看详细信息的超链接列 出处:www.dotnetjunkie.com

      这篇文章来自于一位忠实的DotNetJunkie的建议,他最初发了一封email给我们, 要求我们给出一个例子来说明如何在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参数获得产品的数据。

本文由来源 21aspnet,由 system_mush 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档