2010-12-04 97 views
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屬性。

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

這是因爲當你調用RowCommand事件處理程序,它不會改變網格的選定的行網格

+0

感謝您的回覆Saurabh。 – thevan 2010-12-04 11:06:21

相關問題