(ASP.NET)如何执行此操作:在GridView中单击按钮以打开包含另一个Gridview的弹出窗口

时间:2017-01-25 05:43:23

标签: c# asp.net

从标题开始,我想点击GridView(1)中的ItemTemplate按钮弹出一个窗口。

弹出窗口将包含另一个GridView(2),这个包含信息(从数据库中检索),这个信息与GridView(1)相同,我只想从Button的行索引中获取数据

这些是我的一些代码。 JavaScript的:

<script type="text/javascript">
  $(function() {
    $("[id*=btnShowPopup]").click(function() {
      ShowPopup();
      return false;
    });
  });

  function ShowPopup() {
    $("#dialog").dialog({
      title: "GridView",
      width: 450,
      buttons: {
        Ok: function() {
          $(this).dialog('close');
        }
      },
      modal: true
    });
  }
</script>

GridView(2)设计:

<div id="dialog" style="display: none">>
  <asp:GridView ID="gridviewpopup" runat="server" AutoGenerateColumns="false">
    <Columns>
      <asp:ImageField DataImageUrlField="companyLogo" HeaderText="Company Logo" ControlStyleWidth="170" ControlStyle-Height="120" />
      <asp:BoundField DataField="companyName" HeaderText="Company Name" />
      <asp:BoundField DataField="companyInfo1" HeaderText="Background Information" />
    </Columns>
  </asp:GridView>
</div>

aspx.cs文件代码:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)

        {
            this.BindGrid();
        }
    }

private void BindGrid()

    {
        string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM companyList WHERE companyIndID ='" + Convert.ToString(ddlIndustry.SelectedValue) + "' AND companySectID='" + Convert.ToString(ddlSector.SelectedValue) + "'" ))
            {
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = con;
                    sda.SelectCommand = cmd;

                    using (DataTable dt = new DataTable())
                    {
                        sda.Fill(dt);
                        gridviewpopup.DataSource = dt;
                        gridviewpopup.DataBind();

                    }

                }

            }

        }

    }

protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)

    {

        gridviewpopup.PageIndex = e.NewPageIndex;
        this.BindGrid();
        ClientScript.RegisterStartupScript(this.GetType(), "Popup", "ShowPopup();", true);

    }

上面的代码我没有用,我似乎无法找到它的问题,或者我可能忘了一些东西。 如果您想知道哪个部分,则不会弹出新窗口。 谢谢。

2 个答案:

答案 0 :(得分:0)

1)您可以将超链接按钮放在Gridview中,并为第二个Gridview提供路径。 您也可以点这个链接。 Open new gridview through Hyperlink 并为此创建一个连接类。 2)在一个aspx页面上创建一个Gridview。并在另一页上制作另一个Gridview。 的Response.Redirect( “〜/ secondGridviewpageYouwantTocall.aspx”); 你可以用它来重定向

答案 1 :(得分:0)

感谢您的回答,我无法完全按照自己的意愿行事,但是我使用了Button发送器和GridViewRow来获取行索引数据并使用DataBind插入到其他GridView并使用可见=真,仍然不介意更好的答案。