控制SelectedIndexChanged上UpdatePanel的可见性

时间:2011-08-23 07:31:42

标签: asp.net ajax updatepanel visibility

经过几个小时的调试这个问题(见标题)我正在使用互联网。提前说明,是的,在创建此问题时,我已阅读“具有相似标题的问题”。虽然他们确实提供了一些很好的见解,但尚未达成解决方案。

这是基本的事件地图:

  1. 页面加载,RadioListBox的第一个索引[0]设置为selected =“true”。
  2. 用户选择其他索引,如果选择了特定项目值,则设置   对后续专家组的“真实”的可见性
  3. 我是ASP.NET AJAX世界的新手,所以我们非常感谢所有建议。除非你告诉我吃便便,否则我可能不会那么感激。

    这是代码,然后是我调试它的步骤。

    标记:(是的,我知道不在表单标签内的字段集不是语义的,我稍后会担心)

    <asp:UpdatePanel runat="server" ID="updpnlDDCancelPartnerOpts" UpdateMode="Conditional">
      <ContentTemplate>
        <asp:Panel runat="server" CssClass="frmDDCancelPartnerOpts">
          <fieldset>
            <legend>Digital Cancellation Options:</legend>
            <br />
            <asp:RadioButtonList ID="rdlstCancellOptions" runat="server" AutoPostBack="true"
                                        cssclass="rdBtnLstDDCancelOpts"                                 onselectedindexchanged="rdlstCancellOptions_SelectedIndexChanged">
              <asp:ListItem Value="cancelall" Selected="True">Cancel ALL Digital Distribution:</asp:ListItem>
              <asp:ListItem Value="canceldotcom">Cancel CD Baby ONLY:</asp:ListItem>
              <asp:ListItem Value="partnercancellations">Cancel From Specific Partners:</asp:ListItem>
            </asp:RadioButtonList>
          </fieldset>
        </asp:Panel>
    
        <asp:Panel runat="server" ID="pnlChecks"  CssClass="partner">
        </asp:Panel>
      </ContentTemplate>
      <Triggers>
        <asp:AsyncPostBackTrigger ControlID="rdlstCancellOptions" EventName="SelectedIndexChanged"/>
      </Triggers>
    </asp:UpdatePanel>
    

    CodeBehind :(我只是发布了Event方法,如果你想看到更多,请问:)

    protected void rdlstCancellOptions_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (rdlstCancellOptions.SelectedValue == "partnercancellations")
                {
                    pnlChecks.Visible = true;
                    updpnlDDCancelPartnerOpts.Update();
                }
            }
    

    Debuggin':

    我已将每个(RLB控件和pnlChecks面板)包装在单独的UpdatePanel中,我使用了触发器而未使用它们,几乎是AutoPostBack的每个组合。

    最重要的是,当在事件函数上设置了断点时,它会点击它,迭代它然后返回到页面 - 无需刷新并将pnlChecks面板设置为可见。

    ScriptManager包含在MasterPage中。

    我知道我可能会遗漏大量的信息。然而,现在已经很晚了,经过17个小时的工作日(不是全部花了17个小时),我再也不能强迫眼睛盯着电脑屏幕了。

    所以,如果有什么(很可能是显而易见的)我错过了,请随意分享。所有人都有百万互联网!

    Koohoy0x

2 个答案:

答案 0 :(得分:1)

试试这个:

<asp:Panel runat="server" ID="pnlChecks" Visible="false" CssClass="partner"> 
     Show me
</asp:Panel> 

您的代码没问题,但是面板没有任何显示,它已经可见:)

答案 1 :(得分:0)

找到答案。用于填充数据源的参数对于不同的方法是本地的,因此将null返回到复选框列表。使用Count进行Debbuging我们发现数据甚至没有生成。然而,Ajax工作正常。谢谢大家的回复和时间。