2010-12-04 14 views
1

私はこのように1つのGridviewを持っています。GridView RowCommandイベントでSelectedDataKey値を取得する方法は?

<asp:GridView runat="server" ID="gvMRLSearch" Width="100%" AutoGenerateColumns="false" 
           CssClass="datagrid" DataKeyNames="MRLID" > 
<Columns> 
    <asp:BoundField DataField="MRLID" HeaderText="MRL ID" Visible="false" /> 
    <asp:BoundField DataField="MRLCreateDate" HeaderText="MRL Create Date" /> 
    <asp:BoundField DataField="MRLNumber" HeaderText="MRL Number" /> 
    <asp:ButtonField ButtonType="Link" CommandName="printReport" Text="Print" HeaderText="Action" /> 
</Columns> 
</asp:GridView> 

GridView_RowCommandイベントでMRLID値を取得します。 私はこのように試してみました:

protected void gvMRLSearch_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    try 
    { 
     if (e.CommandName == "printReport") 
     { 
     int MRLID = Convert.ToInt32(gvMRLSearch.SelectedDataKey.Value); 

しかし、私は最初の行MRLIDを取得し、再び二を選択した場合、私は、唯一の最初の行だけのMRLIDを取得します。私は答えを得たグリッド

答えて

1

の設定SelectedIndexプロパティ

あなたはRowCommandイベントハンドラを呼び出すとき、それはグリッドの選択された行を変更しませんので、ある

2

if (e.CommandName == "printReport") 
     { 
      int rowindex = Convert.ToInt32(e.CommandArgument); 
      int MRLID = Convert.ToInt32(gvMRLSearch.DataKeys[rowindex].Value); 
+0

ur応答Saurabhのおかげで。 – thevan

関連する問題