0

首先,我要做的是在我的 RadComboBox 中预先选择一个值,如果未选择该值,则选择其他值,然后将某些特定字段的可见性更改为隐藏。

我的问题是我可以进行预选,但是当预选值发生变化时,我无法更改特定字段的可见性状态。

我厌倦的是使用标准事件OnSelectedIndexChanged来做到这一点,但有些事情不会触发为什么会这样。我还添加了AutoPostBack=true以及ViewStateMode=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 中调用的数据绑定方法中,
我首先循环,然后进行预选

   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

1

如果您的控件位于更新面板中,那么如果更新面板不是那么重要,请尝试将其删除,并查看您对服务器端控件所做的更改是否受到正确影响

于 2013-08-27T07:17:17.667 回答