0

まず、 RadComboBox で値を事前に選択し、この値が選択されていない場合は、他の何かが選択され、特定のフィールドの可視性を非表示に変更します。

私の問題は、事前に選択できることですが、この事前に選択された値が変更されたときに、特定のフィールドの可視性のステータスを変更できないことです。

私がうんざりしているのは、標準イベントOnSelectedIndexChangedでそれを行うことですが、これがなぜこれまでにトリガーされないのか.. AutoPostBack =trueViewStateMode=Enabled も追加しました"

まずは自分の畑

可視性の変更をトリガーしたい

  <div class="formRowDiv">
                        <asp:Label ID="Activitylbl" runat="server" Text="Activity" CssClass="formLabel" />
                        <telerik:RadComboBox ID="rcbActivity" CssClass="rowForm" ViewStateMode="Enabled" runat="server" Width="260px" EmptyMessage="- Activity -"
                            DataTextField="ActivityId" DataValueField="ActivityId" AutoPostBack="true" OnSelectedIndexChanged="rcbActivity_SelectedIndexChanged">
                        </telerik:RadComboBox>
                        <asp:RequiredFieldValidator runat="server" Display="Dynamic" ControlToValidate="rcbActivity"
                            ErrorMessage="Can not be empty" CssClass="rowFormValidation" />
                    </div>

隠したいこと:

<div class="formRowDiv">
                    <asp:Label ID="ActivityDescription" runat="server" Text="ActivityDescription" CssClass="formLabel"    Visible="false"/>
                    <telerik:RadTextBox runat="server" ID="rtbActivityDescription" Wrap="true" Height="50" TextMode="MultiLine" AutoPostBack="true" CssClass="rowForm" ReadOnly="true" Visible="false" />
                </div>

事前選択の方法:

Page_Load で呼び出される
databind メソッドでは、最初にループしてから事前選択を行います

   foreach (Activity item in ctx.Activity.OrderBy(l =>l.Code))
        {
            rcbActivity.Items.Add(new RadComboBoxItem(item.FullActivity, item.ActivityId.ToString()));

            if (rcbActivity.Items.FindItemByValue("4") != null)
            {
                rcbActivity.SelectedIndex = rcbActivity.Items.IndexOf(rcbActivity.Items.FindItemByValue("4"));
                ActivityDescription.Visible = true;
                rtbActivityDescription.Visible = true;
                rtbActivityDescription.ReadOnly = false;
            }
        }

フィールドを非表示にする方法は次のとおりです

protected void rcbActivity_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {

            ActivityDescription.Visible = true;
            rtbActivityDescription.Visible = true;
            rtbActivityDescription.ReadOnly = false;
    }
4

1 に答える 1