2009-07-15 10 views
2

In meiner Webseite habe ich eine Gridview verwendet. In dieser Gitteransicht wird eine Gruppe von Benutzerinformationen angezeigt. Ich habe gerade eine Schaltfläche aus dem Smart Tag-Menü hinzugefügt. Und meine Anforderung ist, dass, wenn ich die Taste für jeden Benutzer treffe, es zu einer anderen Seite umleiten und die entsprechenden Benutzerinformationen anzeigen wird. Was mache ich, um diese Art von Ausgabe zu erhalten?gridview editing

Antwort

3

U die Schaltfläche hinzufügen und ein Attribut Command hinzu:

<asp:Button ID="EditBtn" runat="server" CommandName="Edit" /> 

dann im Falle ItemCommand des Gitters gehen Sie wie folgt

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Edit") 
     { 
      //Redirect to user page information 
      Response.Redirect(PageURL); 
     } 
    } 
1

Statt Taste, einer der machen Spalte verlinkt. Klicken Sie auf den Artikel, umleiten Sie Ihre neue Seite (mit Javascript). Dadurch können Sie eine zusätzliche Spalte für den Button und ein Postback vermeiden.

Sie müssen dafür DataTextFormatString verwenden.

Probe

 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"> 
     <Columns> 
      <asp:BoundField DataField="no" HeaderText="SNo" /> 
      <asp:BoundField DataField="file" DataFormatString="&lt;a href=javascript:ShowAssetDetail('{0}');&gt;{0}&lt;/a&gt;" 
       HeaderText="Asset Desc" HtmlEncodeFormatString="False" /> 
     </Columns> 
    </asp:GridView> 

die JS Funktion ShowAssetDetail() In obiger Probe muss einen Wert, um die Ablen Seite passieren. Unnötig zu erwähnen, dass die JS-Funktion zusätzlich geschrieben werden muss.

+1

ein Hyperlink Hinzufügen ist eine gute Idee, aber Sie sind darüber in einem sehr rückwärts Weg zu gehen, sollen Sie den Hyperlink benutzen, um Ihre Spalte – Austin

+0

Zwei Anliegen einzurichten 1. Hyperlink nutzen zu können, denke ich, Wir müssen Vorlagen verwenden. 2. Ich bevorzugte HTML-Hyperlink, um Code hinter und eine Rundreise zu vermeiden. Wie auch immer, danke für Ihre Antwort – Kaz

3

Ahmy's Antwort ist der Weg zu gehen, wenn Sie eine Schaltfläche verwenden und Ihre Seite auf eine andere Seite mit den Benutzerinformationen umleiten möchten. Eine Sache, die jedoch weggelassen wurde, war, dass Sie über die Schaltfläche ein Befehlsargument (wie die eindeutige ID des Benutzers) übergeben können, das Sie dann in den Querystring der Seite einfügen können, auf die Sie umleiten, um den Benutzer zu identifizieren. Das würde wie folgt aussehen:

<asp:TemplateField HeaderText="Edit User"> 
    <ItemTemplate> 
     <asp:Button ID="EditBtn" Text="Edit User" CommandName="Edit" 
      CommandArgument='<%# Eval("UserID") %>' runat="server" /> 
    </ItemTemplate> 
</asp:TemplateField> 

Dann im Code hinter

protected void GridView1_ItemCommand(object source, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Edit") 
    { 
     //Redirect to user page information 
     Response.Redirect("UserProfilePage.aspx?userID=" + e.CommandArgument); 
    } 
} 

Eine andere Alternative, einen Knopf zu verwenden, die ich denke, ist die beste Option ist eine Hyperlink zu verwenden. Wenn Sie eine Schaltfläche verwenden, muss die Seite zurück zum Server gesendet werden und anschließend eine Weiterleitung an den Browser des Benutzers gesendet werden. Mit einem Hyperlink geht der Benutzer direkt auf die richtige Seite. Es spart einen Schritt und verlässt sich nicht auf Javascript.

<asp:HyperLinkField DataTextField="UserName" DataNavigateUrlFields="UserID" 
    DataNavigateUrlFormatString="UserProfilePage.aspx?userID={0}" 
    HeaderText="Edit User" /> 
Verwandte Themen