Dans gridview comment utiliser rowcommand événement pour un bouton
Je suis à l'aide d'un gridview en aspx et j'ai deux pages d'inscription et les détails.aspx une fois l'enregistrement terminé, il devrait goto la page des détails dans les détails.aspx j'ai gardé un gridview en que le GV-je suis censé être utiliser la ligne de commande pour l'événement le bouton, il devrait montrer toutes les rsults pour les étudiants avec le bouton modifier la dernière colonne pour tous les élèves, j'ai utilisé le point modèle. mais dans la ligne de commande de l'événement, je ne sais pas la fonction à écrire si l'utilisateur en cliquant sur modifier, il doit goto la page d'édition en utilisant le nom d'utilisateur, l'id doit être à midi modifiable mode et les autres champs modifiables.
de détails.aspx
<asp:GridView ID="GridView3" runat="server" CellPadding="3" ForeColor="#333333" GridLines="None" AutoGenerateColumns="false" OnRowCommand="GridView3_RowCommand" OnSelectedIndexChanged="GridView3_SelectedIndexChanged">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="UserName" HeaderText="UserName" ReadOnly="True"/>
<asp:BoundField DataField="Password" HeaderText="Password" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" />
<asp:BoundField DataField="EMail" HeaderText="Emaid-ID" />
<asp:BoundField DataField="PhoneNo" HeaderText="Phone Number" />
<asp:BoundField DataField="Location" HeaderText="Location" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="btnedit" runat="server" Text="Edit" CommandName="Edit" CommandArgument="UserName"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
</div>
</form>
de détails.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
string connection2 = System.Web.Configuration.WebConfigurationManager.ConnectionStrings ["connection1"].ConnectionString;
SqlConnection con = new SqlConnection(connection2);
con.Open();
SqlCommand cmd = new SqlCommand("select * from User_Information", con);
SqlDataReader rdr = cmd.ExecuteReader();
GridView3.DataSource = rdr;
GridView3.DataBind();
con.Close();
}
protected void GridView3_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
if(!IspostBack)
OriginalL'auteur Rajesh B | 2014-07-16
Vous devez vous connecter pour publier un commentaire.
D'abord votre bouton de contrôle
CommandArgument
propriété doit avoir une valeur unique à chaque ligne:Ensuite sur votre code derrière
GridView3_RowCommand
de l'événement, vous aurez quelque chose comme le code ci-dessous:J'ai trouvé à l'aide de "Modifier" le nom de la commande fera toujours la valeur par défaut modifier. Besoin d'utiliser le "myedit" ou une autre chaîne de commande.
OriginalL'auteur Ali Shahrokhi
Deux méthodes Pour ce faire
Méthode 1
S'il vous plaît changer ces choses dans le balisage
CommandName="EditUserName"
CommandArgument
. Nous n'avons pas besoin de cetteCode-behind
Méthode 2
Donner un
CommandArgument
. Vous pouvez donner beaucoup de différents arguments comme cesCommandArgument="<%# Container.DataItemIndex %>"
CommandArgument="<%# Container.DisplayIndex %>"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
(la un Ali a donné)Maintenant dans le code, cela
P. S:
1.La raison de la modification de la CommandName est que si le
CommandName="Edit"
, il fera feu de l'RowEditing
événement qui vous donne cette erreur2.Placez le Page_Load de code à l'intérieur de
if(!IsPostBack)
ou bien aucune des méthodes ci-dessus fonctionne.OriginalL'auteur naveen