2016-10-05 1 views
0

Ich bin Erstellen einer Web-App, in dem ich eine Masterseite mit 5 anderen Seite habenVerwendung Button von master

welcome

user

employee

admin

company

Jede Seite eine Gridview (i.e I have 5 gridviews) gridview enthalten unterschiedliche Daten für unterschiedliche Seite

und i verwendet diese

die Gridview-Daten in Excel zu exportieren
protected void imgexcel_Click(object sender, ImageClickEventArgs e) 
{ 
    Response.Clear(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); 
    Response.Charset = ""; 
    Response.ContentType = "application/vnd.ms-excel"; 

    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 

    GridView1.AllowPaging = false; 
    GridView1.HeaderRow.Style.Add("background-color", "#FFFFFF"); 

    for (int i = 0; i < GridView1.Rows.Count; i++) 
    { 
     GridViewRow row = GridView1.Rows[i]; 
     row.BackColor = System.Drawing.Color.White; 
     row.Attributes.Add("class", "textmode"); 
    } 

    GridView1.RenderControl(hw); 

    string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 

    Response.Write(style); 
    Response.Output.Write(sw.ToString()); 
    Response.Flush(); 
    Response.End(); 
} 

dieser Export meine normale Codierung für ist

aber ich möchte Button auf meiner Masterpage hinzufügen und der Export von Daten hängt davon ab, welche Seite Benutzer verwendet (wenn der Benutzer auf der Begrüßungsseite Daten der Begrüßungsseite muss b e auf die Schaltfläche klicken exportiert und wenn er auf Benutzerseite, und klicken Sie auf die Schaltfläche klicken, um die Daten der Benutzer exportiert werden muss und so weiter)

Antwort

0
string s = this.Page.Request.FilePath; // "/Welcome.aspx" 

Sie diesen Code, so dass Sie zum Halten der Seitennamen in einem String verwenden können kann diese Zeichenfolge in einer Switch-Case-Struktur verwenden (in der Schaltfläche).

switch(string) 
{ 
    case:"welcome": //... 
    case:"user": //... 
    case:"employee": //... 
} 

Hoffe es hilft.

0

Sie können FindControl verwenden, um das GridView auf jeder Seite zu finden. Sie müssen nur sicherstellen, dass alle dieselbe ID haben.

protected void Button1_Click(object sender, EventArgs e) 
    { 
     //first find the ContentPlaceHolder control 
     ContentPlaceHolder contentPlaceHolder = FindControl("ContentPlaceHolder1") as ContentPlaceHolder; 

     //then find the GridView control inside the ContentPlaceHolder 
     GridView gridview = contentPlaceHolder.FindControl("GridView1") as GridView; 

     //or the same as above but in a single line of code 
     GridView gridview = FindControl("ContentPlaceHolder1").FindControl("GridView1") as GridView; 

     //do stuff with the GridView 
     gridview.Visible = false; 
    } 
Verwandte Themen