2010/06/01

在RowCommand事件中取得選取的row

這個問題困擾了很久,尤其是GridView設定分頁後,以GridViewRow gvr = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];的方式取row換頁後就會出現索引的問題。之前都是以網路扒文找到的撇步解決,現在終於找到正解了。感謝小紀的天空提供的這篇文章。這裡提供範例給大家參考:

範例中在每個row裡都有一個LinkButton,去觸發RowCommand事件。
<asp:linkbutton id="lbtnPath" text="下載" CommandName="DownLoad"  runat="server" ></asp:LinkButton>

然後就在RowCommand寫入下面的code:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.IndexOf("DownLoad")>=0)
{
//取得發生RowCommand事件的row
LinkButton tmLB = (LinkButton)e.CommandSource;
GridViewRow gvr = (GridViewRow)tmLB.NamingContainer;
...
}
}