首页 > 解决方案 > “无法将‘PanelNamingContainer’类型的对象转换为‘Telerik.Web.UI.GridItem’类型”

问题描述

我正在将网格转换为 ASP.NET 应用程序的批量编辑网格模板。在一个SelectedIndexChanged事件中,我尝试使用该FindControl()方法存储这些控件,但出现错误

无法将“PanelNamingContainer”类型的对象转换为“Telerik.Web.UI.GridItem”类型

在第 2 行。我尝试转换为只是一个控件。我不再收到错误,但tbIA最终rcbGrades为 NULL。我能做些什么?

服务器端代码

protected void RadCB1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    in_c_Merit_Promotion_Flag = e.Value;
    GridDataItem item = (GridDataItem)((RadComboBox)sender).NamingContainer;
    RadNumericTextBox tbIA = (RadNumericTextBox)item.FindControl("tbIA");
    RadComboBox rcbGrades = (RadComboBox)item.FindControl("rcbGrades");

客户端代码

        <telerik:GridTemplateColumn HeaderStyle-BackColor="#00505C" HeaderStyle-ForeColor="White" DataField="Type_Of_Increase" HeaderText="Type Of Salary Increase" AllowFiltering="false"
                    EditFormColumnIndex="5" UniqueName="Type_Of_Increase" Visible="True" ReadOnly="False">
                    <ItemTemplate>
                        <asp:Label  ForeColor="Black"  BorderColor="LightSlateGray" runat="server" ID="lblTypeOfIncrease" Text='<%# Bind("Type_Of_Increase") %>'></asp:Label>

                    </ItemTemplate>
                    <EditItemTemplate>
                        <telerik:RadComboBox   runat="server"  MarkFirstMatch="true" OnSelectedIndexChanged="RadCB1_SelectedIndexChanged" Skin="Web20" Width="50px"
                            AutoPostBack="true" ID="cboIncreaseType" datavaluefield="Text" datatextfield="Text" datasourceid="ObjDsSalIncType">                                
                        </telerik:RadComboBox>
                        <telerik:RadComboBox runat="server" Skin="Web20" Width="90px" MarkFirstMatch="true" AutoPostBack="false" ID="rcbGrades" Visible="false">
                        </telerik:RadComboBox>
                    </EditItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" BackColor="LightSlateGray" Width="100px" ></HeaderStyle>
                    <ItemStyle BorderColor="LightSlateGray" BackColor="LightYellow" ForeColor="Black" Wrap="false" />
                </telerik:GridTemplateColumn>`enter code here

标签: c#asp.nettelerikcontrols

解决方案


推荐阅读