我的网格中有一个GridCheckboxColumn,需要根据复选框创建一个GridTemplateColumn。 例如,
第1行,
如果选中该复选框,则GridTempleColumn标签显示“YES”, 如果未选中该复选框,则GridTempleColumn标签显示“NO”, 如果复选框为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 :(得分:2)
在访问您的控件之前,检查“e.item”是否为GridDataItem。我在我正在处理的应用程序中执行类似的检查,除了我正在使用“OnItemDatabound”。
protected void grdSummary_OnItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
// Access your controls here
}
}
答案 1 :(得分:2)
CheckBox checkboxfacturable = (CheckBox)dataItem["facturable"].Controls[0];
Label label = (Label)dataItem["typedestickets"].Controls[0];
答案 2 :(得分:1)
大多数控件(包括网格)都可以绑定各种对象,而不仅仅是数据项。在使用e.Item
之前,您应该始终检查OnItemDataBound
处理程序中{{1}}的类型是否正确。