2011-01-12 16 views
0

私は各行にいくつかのレコードを表示しているグリッドを持っています。ここではそれがある方法は次のとおりです。 alt textGridViewの最初の列からIDを取得する

さて、私の問題は、私は、ビューボタンを押したときに、私は次のページで同じIDを表示できるようにセッション変数の最初の列からIDを取得したいということです。 EditButtonのItemTemplateにするために

、私はこのコードを使用しています:

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

- 変更はあなたのASPXで(優先DataKeyNamesを使用)

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

他の方法を必要としませんか?あなたのデータソースはどのように見えますか? – citronas

+0

最初の列のIDは自動生成されませんが、データベースからフェッチされます。ですから、それらは必ずしも私が上に書いた順序でランダムであることはできません。ここに、GirdView HTMLソースのコードへのリンクがあります。 http://pastebin.com/2Zj2DhJU – Cipher

答えて

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

これを試してください。 AutoGenerateColumnプロパティが設定されているどの値で

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