2011-10-08 97 views

回答

1

是的,你可以找到在GridView控件的RowDataBound事件行控制,並訂閱所需的事件代碼隱藏。只有當他們是在每次回發時重新創建

void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 

    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // Display the company name in italics. 
     ((Checkbox)e.Row.FindControl("my_checkbox_id")).CheckedChanged += (sender, args) => { 
      // do something in handler 
     } 

    } 

    } 
1

動態控件支持的事件。所以唯一的解決方案是連續(每次回發)將數據綁定到gridview。 如果你有包裝gridview綁定代碼!IsPostback條件刪除它並在此之後檢查。

順便提一下,如果gridview的數據源數據將被更改,每個動態控件都會得到一個新的UniqueID值,並且這些控件事件將不會被處理。

P.S.也許更好的方法是不要將控件添加到行中,而是根據DataItem中的數據設置Visible屬性值。在這種情況下,ItemTemplate中可能只有少數服務器控件,並只顯示其中一個。

+0

感謝您的評論Yurly。這讓e更多地考慮我需要做什麼 –