从usercontrol访问父页面上的Radgrid项目

时间:2012-04-06 17:19:11

标签: asp.net user-controls telerik radgrid

我有几个共享用户控件的页面。当用户单击用户控件上的保存按钮时,我需要能够在父页面上循环Radgrid的项目并获取所选项目。 radgrid有一个复选框列。我可以看到我从网格单元格中获取值,但由于某种原因,复选框上的选中值始终为false,即使选中它也是如此。当从父页面本身调用而不是从用户控件调用时,这个相同的foreach代码可以工作。

这是一段代码段。

RadGrid ProjectGrid = (RadGrid) this.Parent.FindControl("ProjectGrid");

        foreach (GridDataItem item in ProjectGrid.MasterTableView.Items)
        {
            string applicationPackageId = item.Cells[4].Text.ToString();

            CheckBox chbx = item.FindControl("ProjectGridCheckBox") as CheckBox;

            if (chbx != null && chbx.Checked)
            {
                numCheckedPackages++;
            }
        }

这是我的网格。

<telerik:RadGrid ID="ProjectGrid" runat="server" Skin="WF" ShowHeader="true" EnableEmbeddedSkins="false" AllowSorting="false" AllowFilteringByColumn="false" AllowMultiRowSelection="true">
    <MasterTableView Width="100%" CommandItemDisplay="None" AutoGenerateColumns="false" TableLayout="Fixed">
        <RowIndicatorColumn Visible="False">
            <HeaderStyle Width="20px" />
        </RowIndicatorColumn>
        <ExpandCollapseColumn Resizable="False" Visible="False">
            <HeaderStyle Width="20px" />
        </ExpandCollapseColumn>
        <Columns>
            <telerik:GridTemplateColumn UniqueName="SelectColumn" DataField="Id" HeaderStyle-Width="5%" >  
                <ItemTemplate>  
                    <asp:CheckBox ID="ProjectGridCheckBox"   runat="server"/>  
                </ItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridBoundColumn DataField="Package.ProjectPackageNumberNameDisplayField" HeaderText="Project - Package" UniqueName="ProjectPackages"  HeaderStyle-Width="85%"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ApplicationPackageID" HeaderText="Id" HeaderStyle-Width="15%" UniqueName="PackageId"></telerik:GridBoundColumn>                                    
        </Columns>
    </MasterTableView>
    <ClientSettings EnableRowHoverStyle="true">
        <Selecting AllowRowSelect="True" />
    </ClientSettings>
    <HeaderStyle BackColor="#666666" Font-Names="verdana, arial" Font-Size="Small" Height="20px" />
</telerik:RadGrid>

0 个答案:

没有答案