0

ユーザー コントロールを共有するページがいくつかあります。ユーザーがユーザー コントロールの保存ボタンをクリックしたときに、親ページの 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>
4

0 に答える 0