0

我有一个 RadListView 控件,它在 Itemtemplate 中有一个用于删除 Item 的 asp 按钮。我需要将页面中的所有控件设为只读。最初在 Page_PreRender 事件中,我遍历所有控件及其子控件并禁用它们。一切都按预期工作。但是当我更改 RadListView 的页面时,我之前禁用它们的 asp 控件再次启用。这是 RadListView 与 RadPager 结合的预期行为吗?以下是我设置的属性。

<telerik:RadAjaxManagerProxy ID="ADCleintsRadAjaxManagerProxy" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="ClientsRadAjaxPanel">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="ClientsRadListView" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
        </telerik:RadAjaxManagerProxy>



<telerik:RadAjaxPanel ID="ClientsRadAjaxPanel" runat="server" 
              LoadingPanelID="RadAjaxALoadingPanel" ViewStateMode="Disabled">

            <telerik:RadListView ID="ClientsRadListView" runat="server"
                ItemPlaceholderID="DrugsContainer" 
                AllowPaging="True" PageSize="4" DataSourceID="ClientsDataSource"  
                OnItemDataBound="ClientsRadListView_OnItemDataBound"
                ViewStateMode="Disabled" OnNeedDataSource="ClientsRadListView_OnNeedDataSource"  OnItemCreated="RadListView1_ItemCreated" >

当我更改页面时,我在不同的事件中检查了 Button enable 属性。以下是页面流的顺序。

当我更改 RadListView 页面时>

RadListView1_ItemCreated> Button.enabled 属性为 true

PageLoad > Button.enabled 属性为 true

Page_PreRender >首先用一个函数禁用所有表单元素 > 我发现我的 Button enabled 属性在禁用后在这里是 false 意味着我的函数工作正常。

RadListView1_ItemCreated>再次触发此事件,我的 button.enabled 在这里为真。请问有人可以帮我吗?

4

1 回答 1

0

尝试使用列表视图的OnItemDataBound事件在其中设置控件属性。

Page_PreRender 可能为时已晚,并且 ViewState 可能不会更新(这可能是意料之中的,因为您禁用了列表视图的视图状态,所以我不知道您期望什么以及您追求什么)

或者,如果您在列表视图的 ItemCreated 事件中将 Enabled 属性显式设置为 true,则此行为是意料之中的,我不确定您到底在做什么,未提供代码。

此外,将 ClientsRadAjaxPanel 替换为 asp:Panel。RadAjaxManager/RadAjaxManagerProxy 不得为 RadAjaxPanel 启用 ajax。

于 2016-09-29T08:34:54.390 回答