多个更新面板无法正常工作

时间:2016-02-03 12:22:51

标签: c# asp.net updatepanel partial-postback

我在一个页面中有2个更新面板。第一个更新面板包含动态添加的单选按钮列表,并在下拉列表的SelectedIndexChanged事件中触发。根据第一个更新面板中所选的radiobutton值触发第二个Update面板。

我可以在下拉菜单的SelectedIndexChanged事件中加载第一个更新面板的值。

这里的问题是我无法在点击radiobutton时加载第二个更新面板的内容。甚至调试器也没有击中RadioButtonChange事件。

这是触发第一个更新面板的下拉列表。

<asp:DropDownList id="ddlformat" class="select" runat="server" autopostback="true" onchange="formatChange();">
                                            </asp:DropDownList>

以下是我的第一个更新面板的HTML代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional" ChildrenAsTriggers="true">
                                            <Triggers>
                                                <asp:AsyncPostBackTrigger ControlID="rdbexisting" />
                                            </Triggers>
                                            <ContentTemplate>
                                                <div id="templatepreview" style="display: none" runat="server">
                                                    <div id="templatemain" class="msgdivtemplate" runat="server">
                                                    </div>
                                                    <div id="tmppreviewload" class="msgexistingdivload" runat="server">
                                                        <div class="preview" style="float: left" onclick="largePreview();">
                                                            <img height="20px" width="20px" src='<%#MQSGeneric.GetAppPath() + "/Themes/" + (Session["UserCSSPath"] != null ? Session["UserCSSPath"] : "") + "Images/search_black.png" %>' />
                                                            <asp:Label ID="Label1" Text="Large Preview" runat="server"></asp:Label>
                                                        </div>
                                                        <a style="text-decoration: none; left: 185px; position: absolute; cursor: pointer;
                                                            color: Blue" id="ancexistingload" runat="server">Load </a>
                                                    </div>
                                                </div>
                                            </ContentTemplate>
                                        </asp:UpdatePanel>

这是第二个更新面板

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="conditional" ChildrenAsTriggers="true">
                                                    <Triggers>
                                                        <asp:AsyncPostBackTrigger ControlID="ddlformat" />
                                                    </Triggers>
                                                    <ContentTemplate>

                                                         <div id="divexisting" runat="server" visible="true" class="display msgexistingdiv">
                                                            &nbsp;
                                                        </div>
                                                    </ContentTemplate>
                                                    </asp:UpdatePanel>

以下是用于加载第一个updatepanel的代码隐藏代码

protected void FillExistingTemplate(object sender, EventArgs e)
    {
        larrlist = null;

        larrlist = FindAllMessageTemplateByTemplateMediumAndFormat(ddldescmedium.SelectedValue, ddlformat.SelectedValue);

        dtaud = getAudienceDetailsByMedium(ddldescmedium.SelectedValue, ddlformat.SelectedValue);

        if (dtaud != null)
        {
            for (int i = 0; i < dtaud.Rows.Count; i++)
            {
                HtmlGenericControl divaud = new HtmlGenericControl();
                divaud.ID = "div" + dtaud.Rows[i]["AUDIENCE_CODE"].ToString();
                divaud.InnerHtml = dtaud.Rows[i]["AUDIENCE_DESCR"].ToString();
                divaud.Attributes.Add("style", "font-weight:bold");
                divexisting.Controls.Add(divaud);
                if (larrlist != null && larrlist.Count > 0)
                {
                    HtmlTable tblaud = new HtmlTable();
                    tblaud.Attributes.Add("style", "padding-left:30px;font-weight:normal");
                    tblaud.CellSpacing = 10;
                    tblaud.CellPadding = 10;
                    AsyncPostBackTrigger trigger;
                    foreach (MessageTemplateVO objmsgvo in larrlist)
                    {
                        try
                        {
                            if (objmsgvo.Audience.ToString() == dtaud.Rows[i]["AUDIENCE_CODE"].ToString())
                            {
                                HtmlTableRow traud = new HtmlTableRow();
                                HtmlTableCell tcaud = new HtmlTableCell();
                                RadioButton rdb = new RadioButton();
                                rdb.ID = "rdb" + objmsgvo.TemplateCode.ToString();
                                rdb.Text = objmsgvo.TemplateCode;
                                rdb.GroupName = "rdbexistinggrp";
                                rdb.AutoPostBack = true;
                                rdb.CheckedChanged += new EventHandler(RadioButtonChange);
                                //rdb.Attributes.Add("onClick","javascript: var ele=document.getElementById('"+templatepreview.ClientID+"');ele.setAttribute('style', 'display:block');");
                                tcaud.Controls.Add(rdb);
                                traud.Controls.Add(tcaud);
                                tblaud.Controls.Add(traud);
                                divaud.Controls.Add(tblaud);

                                radiobuttons += rdb.ID + ",";

                                trigger = new AsyncPostBackTrigger();
                                trigger.ControlID = rdb.ID;
                                trigger.EventName = "CheckedChanged";
                                UpdatePanel2.Triggers.Add(trigger);
                            }
                        }
                        catch (Exception ex)
                        {
            Console.WriteLine(ex.Message);
                        }
                    }
                }


            }
        }
    }

点击radiobutton时没有发生任何事情。

Plz帮助。

0 个答案:

没有答案