Доступ к GridCheckboxColumn - PullRequest
1 голос
/ 02 марта 2012

У меня есть GridCheckboxColumn в моей сетке, и необходимость создания GridTemplateColumn в соответствии с флажком отмечена или нет.Например,

строка 1,

, если установлен флажок, метка GridTempleColumn отображает «ДА», если флажок не установлен, метка GridTempleColumn отображает «НЕТ», если флажок НЕДЕЙСТВИТЕЛЕН.: он отображает «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"; }
    }



}

Заранее благодарю за помощь

Ответы [ 3 ]

2 голосов
/ 14 марта 2012
CheckBox checkboxfacturable = (CheckBox)dataItem["facturable"].Controls[0]; 
Label label = (Label)dataItem["typedestickets"].Controls[0];
2 голосов
/ 07 марта 2012

Проверьте "e.item" GridDataItem перед доступом к вашим элементам управления.Я выполняю аналогичную проверку в приложении, над которым я работаю, за исключением того, что я использую «OnItemDatabound».

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

}
1 голос
/ 07 марта 2012

Большинство элементов управления, включая сетки, могут связывать различные объекты, а не только ваши элементы данных.Вы должны всегда проверять, что e.Item имеет правильный тип первым делом в вашем обработчике OnItemDataBound перед его использованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...