在PageChange之后,RadListView的ItemTemplate中的按钮正在丢失其禁用的属性

时间:2016-09-22 13:39:07

标签: asp.net telerik radlistview

我有一个RadListView控件,它在Itemtemplate中有一个asp按钮来删除Item。我要求在页面中只读取我的所有控件。 最初是在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页面&gt;

RadListView1_ItemCreated&gt; Button.enabled属性为true

PageLoad&gt; Button.enabled属性为true

Page_PreRender&gt; 首先使用函数&gt;禁用所有表单元素禁用后我发现我的Button enabled属性为false意味着我的功能正常工作。

RadListView1_ItemCreated&gt; 此事件再次触发,我的button.enabled在此处为true。 请任何人帮我这个吗?

1 个答案:

答案 0 :(得分:0)

尝试使用listview的 OnItemDataBound 事件在其中设置控件属性。

Page_PreRender可能太晚了,ViewState可能无法更新(这可能是预期的,因为你禁用了listview的viewstate,所以我不知道你期望什么以及你追求的是什么)

或者,如果在listview的ItemCreated事件中显式设置Enabled属性为true,则会出现此行为,我不确定您到底在做什么,但未提供代码。

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