In the following example, GridView has three columns - one for HyperLinkField, 2nd one for BoundField, and the last one for Delete CommandField. Let us say we want to get first column value as a key, when user clicks Delete button in 3rd column.
<asp:GridView ID="grid1" runat="server" onrowdeleting="grid1_RowDeleting"> <columns> <asp:HyperLinkField DataNavigateUrlFields="Link" DataNavigateUrlFormatString="~\{0}" DataTextField="Link" HeaderText="Link ID" Target="_blank" /> <asp:BoundField DataField="Name" HeaderText="Name"> <itemstyle Width="200px" /> </asp:BoundField> <asp:CommandField ShowDeleteButton="True" /> </Columns> </asp:GridView>
So when user clicks Delete button, OnRowDeleting event handler will be fired.
In the event handler, RowIndex will be passed from a GridViewDeleteEventArgs argument. Thus current GridViewRow can be retrieved from Rows[e.RowIndex].
protected void grid1_RowDeleting(object sender, GridViewDeleteEventArgs e) { GridViewRow row = grid1.Rows[e.RowIndex]; // Gets HyperlinkField data string linkID = ((HyperLink)row.Cells[0].Controls[0]).Text; // Gets BoundField data string name = row.Cells[1].Text; DeleteRow(linkID); ReloadGridData(); }
Since we want to check first column, row.Cells[0] returns first column of the row as a TableCell object. First child control in the TableCell object is a HyperLink object, so we cast it as HyperLink and gets the Text property of the HyperLink object.
No comments:
Post a Comment