首先,我要做的是预先选择RadComboBox中的值,如果未选择此值,则选择其他内容,然后将隐藏的某些特定字段的可见性更改为。
我的问题是我能够进行预选择,但是当这个预先选择的值发生变化时,我无法改变我的特定字段的可见性状态。
我厌倦了用标准事件 OnSelectedIndexChanged 来做这件事,但有些事情并没有触发为什么这么做..我还添加了 AutoPostBack = true 以及 ViewStateMode =启用“
首先是我的领域
这里也是我的预感,我想触发可见性变化
<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;
}
答案 0 :(得分:1)
如果您的控件位于更新面板中,请尝试删除它,如果更新面板不是那么重要,请查看您对服务器端控件的更改是否正在受到影响