2012-03-02 27 views
0

我在我的網格中有一個GridCheckboxColumn,並且需要根據複選框創建GridTemplateColumn或不是。 例如,訪問一個GridCheckboxColumn

線1,

如果該複選框被選中的GridTempleColumn標籤顯示爲「是」, 如果複選框未被選中的GridTempleColumn標籤顯示爲「否」, 如果該複選框是NULL:它顯示「N/A」。

綜上所述,我有這個在我的aspx頁面:

<telerik:GridCheckBoxColumn DataField="facturable" DataType="System.Boolean" HeaderText="facturable" 
    SortExpression="facturable" UniqueName="facturable"> 
</telerik:GridCheckBoxColumn> 

       <telerik:GridTemplateColumn HeaderText="Type de tickets" 
    UniqueName="typedestickets"> 
    <ItemTemplate><asp:Label id="test" runat="server"></asp:Label></ItemTemplate> 
</telerik:GridTemplateColumn> 

我的代碼嘗試背後:(不工作)

protected void RadGrid1_DataBound(object sender, EventArgs e) 
{ 
    foreach (Telerik.Web.UI.GridDataItem dataItem in RadGrid1.MasterTableView.Items) 
    { 
     CheckBox chkDelete = (CheckBox)dataItem.FindControl("facturable"); 
     Label label = (Label)dataItem.FindControl("test"); 

     if (chkDelete.Checked == true) { label.Text = "MA"; } 
    } 



} 

預先感謝您的幫助

+0

解決方案: 複選框checkboxfacturable =(複選框)的DataItem [ 「facturable」]控制[0]; Label label =(Label)dataItem [「typedestickets」]。Controls [0]; – Slrg 2012-03-02 15:51:58

+0

如果這確實是解決方案,那麼請添加它作爲答案,並接受它,所以這不會坐視未答覆。 – kevev22 2012-03-02 17:51:02

回答

2
CheckBox checkboxfacturable = (CheckBox)dataItem["facturable"].Controls[0]; 
Label label = (Label)dataItem["typedestickets"].Controls[0]; 
2

在訪問控件之前檢查「e.item」是否是GridDataItem。我在我正在處理的應用程序中執行類似的檢查,除了我正在使用「OnItemDatabound」之外。

protected void grdSummary_OnItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     // Access your controls here 
    } 

} 
1

大多數控件(包括網格)都可以綁定各種對象,而不僅僅是數據項。在使用它之前,您應該始終檢查e.Item在您的OnItemDataBound處理程序中是否屬於正確的類型。