1

SelectIndexChanged でドロップダウンを更新するラジオ リストを含むユーザー コントロールがあります。基本的なページをまとめて、ユーザー コントロールをページに追加すると正常に動作しますが、コントロールを radgrid 内に移動すると動作せず、ポスト バックされますが、SelectIndexChanged イベントは呼び出されません。

このQ. 1Q. 2について、aspx ページで OnSelectedIndexChanged を設定する必要があるという以前の 2 つの質問を取り上げました。私の問題は、コントロールがaspxページに存在せず、後で作成されるため、ソリューションが機能しないことです。

作業コード

ワーキング.aspx

<TT:ToolTipControl ID="ToolTipEdit" runat="server" />

working.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    ToolTipEdit.getEditToolTip("POL_TERM_CD", "DataPolTermDropDownlistEdit");
}

ユーザーコントロール

userControl.ascx.cs

public void getEditToolTip(string fieldName, string ddlName)
{
     DataPolTermRadioListBox ccPolTermRadioListBox = new DataPolTermRadioListBox(); //custom radio list
     ccPolTermRadioListBox.ID = "PolTermRadioListBox";
     ccPolTermRadioListBox.AutoPostBack = true;
     ccPolTermRadioListBox.SelectedIndexChanged += new System.EventHandler(updateParent);
     ToolTip.Controls.Add(ccPolTermRadioListBox);
}

壊れたコード

壊れたページ.aspx

<telerik:RadGrid ID="rgState" Skin="WebBlue" runat="server" OnNeedDataSource="rgState_NeedDataSource"
     AutoGenerateColumns="False" OnPreRender="rgState_PreRender">
     <MasterTableView DataKeyNames="wrtnStPolId" AllowAutomaticUpdates="false" AllowAutomaticDeletes="true"
         AllowAutomaticInserts="false" CommandItemDisplay="Top" AllowMultiColumnSorting="True"
         EditMode="InPlace" GroupLoadMode="Server" Caption="State(s) and Exposure(s)">
         <Columns>
             <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Pol Type Nstd" SortExpression="nonStdPolTypeCd"
                 UniqueName="nonStdPolTypeCd">
                 <ItemTemplate>
                     <asp:Label ID="lblNonStdPolTypeCd" runat="server" align="center" Text='<%#DataBinder.Eval(Container.DataItem, "nonStdPolTypeCd")%>' />

                 </ItemTemplate>
                 <EditItemTemplate>
                     <cc1:DataNonStdTypeCdDropDownList ID="ddlNonStdTypeCd" runat="server" ClientIDMode="Predictable">
                     </cc1:DataNonStdTypeCdDropDownList>
                     <TT:ToolTipControl ID="ttcNonStdPolTypeCdEdit" runat="server" />
                 </EditItemTemplate>
             </telerik:GridTemplateColumn>
         </Columns>
     </MasterTableView>
 </telerik:RadGrid>

壊れたページ.aspx.cs

protected void rgState_PreRender(object sender, EventArgs e)
        {

            RadGrid rgExpMod = (RadGrid)sender;

            foreach (GridDataItem row in rgExpMod.Items)
            {

                    GridDataItem gdiItem = (GridDataItem)row;

                    if (row.FindControl("ttcNonStdPolTypeCdEdit") != null)
                    {

                        DropDownList ddl = (DropDownList)row.FindControl("ddlNonStdTypeCd");
                        ddl.ID += row.RowIndex;
                        ddl.SelectedIndex = 2;

                        NCCI.PDC.Web.Controls.ucToolTip ttcNonStdPolTypeCdEdit = (NCCI.PDC.Web.Controls.ucToolTip)row.FindControl("ttcNonStdPolTypeCdEdit");
                        ttcNonStdPolTypeCdEdit.getEditToolTip("non_std_pol_type_cd", ddl.ID);

                    }
            }

        }
4

0 に答える 0