Reputation: 31
Public Function GridView_RowUpdating(sender As Object, _
e As GridViewUpdateEventArgs) As Integer
Dim ID As Integer = GridView1.DataKeys(e.RowIndex).Value
Return ID
End Function
I need the id(datakey) for edit data from myGridview on another page. How can I do it?
Upvotes: 1
Views: 112
Reputation: 55200
The simplest way to do this will be like this.
At WebForm1 markup use either of these two methods
a. Use a asp:TemplateField
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="EditLink" runat="server"
NavigateUrl='<%# "~/WebForm2.aspx?id=" + Eval("ID") %>'
Text="Update" />
</ItemTemplate>
</asp:TemplateField>
b. Use a asp:HyperLinkField
<asp:HyperLinkField Text="Update"
DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="~\WebForm2.aspx?id={0}"
HeaderText="Action" />
And at WebForm2 code-behind do this
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request.QueryString("id") IsNot Nothing Then
Dim passedID As String = Request.QueryString("id")
'populate the fields using .FirstOrDefault
Else
'no id passed. cannot process
End If
End If
End Sub
Upvotes: 0
Reputation: 384
chk this code will help you....
<asp:GridView ID="grdViewTracking" runat="server" AllowPaging="True" AllowSorting="true"
OnSorting="grdViewTracking_Sorting" AutoGenerateColumns="False" BorderColor="#E7E7E7"
BorderStyle="Solid" BorderWidth="1px" OnPageIndexChanging="grdViewTracking_PageIndexChanging"
CellPadding="1" ForeColor="#666666" PageSize="10" Width="100%">
<Columns>
<asp:TemplateField HeaderText="#" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<table>
<tr style="background-color: White">
<td style="padding-left: 5px;">
<%#DataBinder.Eval(Container.DataItem, "Number")%>
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle Width="5%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Key" SortExpression="Key" ItemStyle-HorizontalAlign="Left">
<HeaderStyle HorizontalAlign="Left" CssClass="PaddingLeft5" />
<ItemTemplate>
<table>
<tr style="background-color: White">
<td style="padding-left: 5px">
***<asp:LinkButton ID="lnkkey" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Key")%>'></asp:LinkButton>***
<input type=hidden runat="server" id="hfid" value=' <%#DataBinder.Eval(Container.DataItem, "Appsettingid")%>' />
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle Width="15%" />
</asp:TemplateField>
below code to transfer control to second page i.e. edit page.....
protected void grdViewTracking_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
BusinessLogicPOS.AppSettingArgs ob = e.Row.DataItem as BusinessLogicPOS.AppSettingArgs;
LinkButton lnkkey = e.Row.FindControl("lnkkey") as LinkButton;
lnkkey.PostBackUrl = "AppSetting.aspx?AppSettingId=" + ob.AppSettingId.ToString();
}
Check reference:
Upvotes: 2