2017-01-25 4 views
0

Wie aus dem Titel möchte ich ein Popup-Fenster beim Klicken auf eine Schaltfläche ItemTemplate in einem GridView tun (1).(ASP.NET) Vorgehensweise: Klicken Sie in GridView, um ein Popup-Fenster mit einem anderen GridView zu öffnen

Das Pop-up-Fenster wird ein weiteres GridView (2) enthalten, und dieses enthält Informationen (aus Datenbank abgerufen), diese Informationen sind die gleichen wie GridView (1) und ich möchte nur die Daten aus dem Zeilenindex des Taste.

Dies sind einige Codes, die ich habe. 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) Design:

<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 Datei-Codes:

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); 
 

 
    }

Die oben genannten Codes, die ich nicht arbeite, und ich kann das Problem nicht mit ihm zu finden scheinen, oder ich kann etwas vergessen haben. Wenn Sie sich fragen, welcher Teil, das neue Fenster nicht erscheint. Danke.

+0

Sie benötigen 'updatepanel', um' GridView' zu halten. Dann auf Knopf klicken, Popup öffnen und GridView über updatepanel refresh aktualisieren – Hemal

Antwort

1

1) Sie können Hyperlink-Schaltfläche in Gridview einfügen und Pfad für zweite Gridview bereitstellen. Sie können diesem Link auch folgen. Open new gridview through Hyperlink Und machen Sie eine Verbindungsklasse dafür. 2) Erstellen Sie eine Gridview auf einer Aspx-Seite. Und mach einen anderen Gridview auf einer anderen Seite. Response.Redirect ("~/secondGridviewpageYouwantTocall.aspx"); Sie können diese verwenden,

0

Danke für die Antworten zu umleiten, ich genau das zu tun, nicht in der Lage war, was ich wollte, aber statt einem Pop-up-I Button-Sender verwendet und GridViewRow zu Zeile Indexdaten zu erhalten und eingefügt unter Verwendung mit DataBind zu Das andere GridView und die Methode mit Visible = true beenden, würde trotzdem keine besseren Antworten darauf geben.