在GridView放一個Linkbutton或是ImageButton時

RowCommand event裡面沒有可以直接讀取index

如果要取得DataKeyNames的值就需要RowIndex才有辦法

有二種讀取的方式

第一種

    
<asp:GridView ID="dgvCountersignSetList" runat="server" AutoGenerateColumns="False" 
		OnRowCommand="dgvCountersignSetList_RowCommand" DataKeyNames="event_id" >
    <Columns>
        <asp:TemplateField InsertVisible="False" ShowHeader="False">
            <ItemTemplate>
                <asp:ImageButton ID="ImageButton1" runat="server"
                    ImageUrl="xxx.gif" Text="刪除" CommandName="DelData" 
                    //直接這樣就可以給序號了
                    CommandArgument='<%# Container.DataItemIndex%>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="DATA01" HeaderText="xxx">
            <HeaderStyle Font-Size="Small" Width="75px" />
            <ItemStyle Font-Size="Small" />
        </asp:BoundField>
        <asp:BoundField DataField="DATA02" HeaderText="xxx">
            <HeaderStyle Font-Size="Small" Width="80px" />
            <ItemStyle Font-Size="Small" />
        </asp:BoundField>
        <asp:BoundField DataField="DATA03" HeaderText="xxx">
            <HeaderStyle Font-Size="Small" Width="120px" />
            <ItemStyle Font-Size="Small" />
        </asp:BoundField>
    </Columns>
</asp:GridView>

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "DelData")
  {     
    //這樣就可以讀到RowIndex
    int index = Convert.ToInt32(e.CommandArgument);      
    //這樣就可以取得Keys值了
    string keyId = GridView1.DataKeys[index].Value.ToString();
  }
}

第二種

  
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "DelData")
  {     
    //這樣就可以讀到RowIndex
    int index = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
    //這樣就可以取得Keys值了
    string keyId = GridView1.DataKeys[index].Value.ToString();
  }
}

第二種方式本來我是不知道後來看到的

參考:http://hi.baidu.com/brian_chiu/blog/item/1a5f3e2b0462f4f2e6cd40d2.html

arrow
arrow
    全站熱搜

    鴨爸 發表在 痞客邦 留言(2) 人氣()