2011-01-12 64 views
0

我有一個網格,我在其中顯示每行中的一些記錄。下面是它的是: alt text從GridView的第一列提取ID

現在,我的問題是,當我按下查看按鈕,我想在一個會話變量來從第一列中的ID,這樣我可以在接下來的頁面上顯示相同的ID 。

對於EditButton的ItemTemplate中,我使用這個代碼:

<ItemTemplate> 
    <asp:LinkButton ID="EditBtn" CssClass="btn green" CommandName="edit" ToolTip="Edit" Text="Edit" runat="server" /> 
</ItemTemplate> 
+1

的上是AutoGenerateColumn屬性設置什麼樣的價值?你的數據源是怎樣的? – citronas 2011-01-12 08:14:48

回答

3

你可以嘗試把它當作命令的參數:

<ItemTemplate> 
    <asp:LinkButton 
     ID="EditBtn" 
     CssClass="btn green" 
     CommandName="edit" 
     CommandArgument='<%# Eval("FirstColumnId") %>' 
     OnCommand="EditCommand" 
     ToolTip="Edit" 
     Text="Edit" 
     runat="server" /> 
</ItemTemplate> 

,並在後面的代碼:

protected void EditCommand(object sender, GridViewCommandEventArgs e) 
{ 
    var id = e.CommandArgument; 
    // TODO: do something with the id 
} 
1

試試這個。不改變你的aspx需要

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    Session["UserID"] = ((Label)GridView1.Rows[e.NewEditIndex].FindControl("lb1")).Text.Trim(); 
} 

其他方法(使用的DataKeyNames - 首選)

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    Session["UserID"] = GridView1.DataKeys[e.NewEditIndex].Value.ToString(); 
}