【问题标题】:Dymamically populated checkbox remembers previous selections动态填充复选框记住以前的选择
【发布时间】:2012-09-13 06:08:05
【问题描述】:

我必须在 Sharepoint 站点的更新面板中动态填充一个复选框。 问题是,即使我在单击按钮后清除了选择,复选框也会以某种方式记住以前的选择,并且即使对于以前的选择,也将 checkbox.items[i].selected 显示为 true 如果我删除更新面板,则此问题得到解决。但是我无法删除更新面板,因为每次进行选择时整个页面都会重新加载 下面是我的代码

                <div align="left">
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="True"  >
                <ContentTemplate> 
                <asp:CheckBoxList    BackColor="White"  AutoPostBack="true"   ID="cbHideTabs" 
                        runat="server"  isCheckable="true" ForeColor="#0072bc" Width="300px" >
                        </asp:CheckBoxList>

                    <input type ="button"    Visible ="true" ID="HideShowTabButton" value="HideShowTab" title="HideShowTab" runat="server"   style="background-color: #0072bc; color: #FFFFFF;" enableviewstate="False" />   

            </ContentTemplate>
                   </asp:UpdatePanel>
             </div>
     </asp:Panel>

        <br />

        <asp:PopupControlExtender ID="PopupControlExtender1" Enableviewstate="false" runat="server" CommitProperty="value"
           PopupControlID="Panel1" 
            Position="Bottom" TargetControlID="ShowHideLabel">
        </asp:PopupControlExtender> 

【问题讨论】:

    标签: c# sharepoint-2010 checkboxlist


    【解决方案1】:

    您能否分享您用于清除选择的代码。

    我修改了你的代码并为我工作。

    aspx 页面代码

    <%@ Page Title="Home Page" Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false"
        CodeBehind="Default.aspx.vb" Inherits="UpdateCheckbox._Default" %>
    
    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
    </asp:Content>
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
       <div>
        <asp:scriptmanager ID="Scriptmanager1" runat="server"></asp:scriptmanager>
        <asp:updatepanel ID="Updatepanel1" runat="server">
        <ContentTemplate> 
                    <asp:CheckBoxList ID="chkAll"    BackColor="White"  AutoPostBack="true"   
                            runat="server"  isCheckable="true" ForeColor="#0072bc" Width="300px" >
                           <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
                           <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
                           <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
    <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
    <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
    <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
    <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
                           <asp:ListItem Enabled="true" Text="1"></asp:ListItem>
                           </asp:CheckBoxList>
    <asp:Button runat="server" Text="HideShowTab" runat="server" OnClick="Clear_Click"  style="background-color: #0072bc; color: #FFFFFF;" enableviewstate="False" />
    
                </ContentTemplate>
    
        </asp:updatepanel>
    </div>
    </asp:Content>
    

    vb.net 中的代码

    Protected Sub Clear_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            chkAll.ClearSelection()
        End Sub
    

    【讨论】:

    • 嗨 Pushpendra,我正在使用下面的代码来清除我的文本框并关闭 popupextender cbHideTabs.ClearSelection(); PopupControlExtender1.Cancel(); 我也不能像你那样添加一个脚本管理器,因为它已经添加到另一个用户控件中使用相同的页面,我想我们每个页面只能使用一个脚本管理器。
    • 是的,非常正确 脚本管理器在页面上只能有一个实例,否则您会收到错误:只有一个 ScriptManager 实例可以添加到页面中。但是,我建议您将脚本管理器移至母版页,这是更好的选择。
    • 但问题仍然存在。你认为这只是因为脚本管理器。另外,由于这是一个共享点站点页面,我不明白你所说的母版页是什么意思。
    • 能否分享一下Page_Load事件的代码。你检查过!IsPostback。它可能是罪魁祸首。不,不是因为脚本管理器。 Script Manager 的唯一条件是它必须在使用任何 Ajax 控件之前出现在页面上。我认为您使用的是默认母版页。有关共享点母版页的更多信息,请在问题解决后进行谷歌搜索。
    • 我加载复选框比检查 !IsPostback 稍微复杂一些。但请放心,我在页面加载期间只填充了一次复选框,一旦单击按钮,我就会清除选择。我还尝试在单击按钮后清除列表项并再次填充复选框。但问题仍然存在。跨度>
    猜你喜欢
    • 2023-04-08
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多