我在一个页面中有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">
</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帮助。