C# 更新面板中未触发dropDownList的SelectedIndexChanged事件
在更新面板中选择了dropDownList未触发的DexChanged事件,并设置AutoPostBack=“true” 以下是我的设计代码:C# 更新面板中未触发dropDownList的SelectedIndexChanged事件,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,在更新面板中选择了dropDownList未触发的DexChanged事件,并设置AutoPostBack=“true” 以下是我的设计代码: <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:DropDownList ID="ddl_TypeofCampaign" runat="server" CssClass="form-control" AutoPostBac
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddl_TypeofCampaign" runat="server" CssClass="form-control" AutoPostBack="true" OnSelectedIndexChanged="ddl_TypeofCampaign_SelectedIndexChanged" AppendDataBoundItems="true" ViewStateMode="Enabled" EnableViewState="true" >
<asp:ListItem Text="Select" Value="0"></asp:ListItem>
<asp:ListItem Text="Email" Value="Email"></asp:ListItem>
<asp:ListItem Text="SMS" Value="SMS"></asp:ListItem>
<asp:ListItem Text="Voice SMS" Value="Voice SMS"></asp:ListItem>
</asp:DropDownList>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"
DisplayAfter="1">
<ProgressTemplate>
<div id="IMGDIV" runat="server" align="center" style="visibility: visible; vertical-align: middle; position: absolute; background-color: #fafbf6"
valign="middle">
<asp:Image ID="Image001" runat="server" ImageUrl="~/assets/img/ajax-loader.gif" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
我的页面加载代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FillGrid();
FillTypeofSourcing();
FillCampaignNames();
FillTemplates();
}
}
填充模板方法,根据选择获取模板名称
protected void FillTemplates()
{
if (ddl_TypeofCampaign.SelectedItem.ToString() != "Select")
{
bo.Para1 = ddl_TypeofCampaign.SelectedItem.ToString();
bo.Para2 = "Stage1";//StageValue in TemplateMasterInfo Table
DataTable dt = bl.Get_Templates(bo);
ddl_TypeofTemplateName.DataSource = dt;
ddl_TypeofTemplateName.DataTextField = "TemplateName";
ddl_TypeofTemplateName.DataValueField = "TemplateId";
ddl_TypeofTemplateName.Items.Clear();
ddl_TypeofTemplateName.Items.Add(new ListItem("Select", "0"));
ddl_TypeofTemplateName.DataBind();
}
else
{
ddl_TypeofTemplateName.Items.Clear();
ddl_TypeofTemplateName.Items.Add(new ListItem("Select", "0"));
ddl_TypeofTemplateName.DataBind();
}
}
尝试将
Trigger
添加到更新面板,如下所示
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl_TypeofCampaign"
EventName="SelectedIndexChanged" />
</Triggers>
更新
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers> //this is missing in your code posted
<asp:AsyncPostBackTrigger ControlID="ddl_TypeofCampaign" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>mydropcode </ContentTemplate> </asp:UpdatePanel>
//这在您的代码中丢失
mydropcode
在页面标签中,我提到了viewStateEncryptionMode=“Never”,我正在使用Visual Studio 2013。下面是我的页面标签详细信息
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ViewCandidate.aspx.cs" Inherits="ViewCandidate" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" %>
显示你的页面加载
code我已经更新了我的问题,还提到了页面加载代码@Webrusterwhere您正在加载这个下拉列表?控制台中有错误吗?我已经删除了所有的更新面板和进度条,当我选择下拉列表时,就会出现这样的错误。viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成@WebrusterI已将您的代码添加到更新面板ContentTemplate中,但获取的错误:元素“AsyncPostBackTrigger”不是已知元素。如果网站中存在编译错误或web.config文件丢失,则可能发生这种情况@Webruster mydropcode@WebrusterNow错误不会出现,但仍不会触发,我将断点代码保留在“选择索引更改断点”后面也不起作用@Webruster@zahed您需要在Triggers
下添加AsyncPostBackTrigger
,如下updatepanel
-->Triggers
-->AsyncPostBackTrigger
我添加了您的更新答案,没有触发任何思考和下拉列表,也没有填充@网锈菌
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ViewCandidate.aspx.cs" Inherits="ViewCandidate" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" %>