[ASP.Net] 如何找到UserControl中GridView的ItemTemplate控制項

在使用ascx控制項時,
一樣可使用FindControl來取得ItemTemplate控制項 ,
LinkButton lb = (LinkButton)e.Row.FindControl("LinkButton_abc");
但因為自己忘了去考量
e.Row.RowType == DataControlRowType.DataRow
這個RowType
使得在設定 lb 時一直出現錯誤訊息
google一下才想到
GridView_RowDataBound
是會把所有GridView的Row都做一次
所以在DataControlRowType.Header時因沒有ItemTemplate控制項所以一直出現錯誤~
但~~~郤一直都沒有想到~~~~@@
真的是太久沒有GridView了
所以改為
 string js = "window.open('abc.aspx','資料下載','');";
if (e.Row.RowType == DataControlRowType.DataRow)
{
       LinkButton lb = (LinkButton)e.Row.FindControl("LinkButton_abc");
       lb.OnClientClick = js;
 }
就會正常了~@@

留言