2016-09-22 6 views
0

DropDownListのSelectedIndexChangedイベントは、Update Panelで発生せず、AutoPostBack = "true"に設定されます。dropDownListのSelectedIndexChangedイベントは、更新パネルで発生しません。

<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 ddl_TypeofCampaign_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Thread.Sleep(2000); 
    FillTemplates(); 
    btn_Preview.Visible = false; 

} 

マイページのロードコード

以下は私の設計コードです。

フィルテンプレートメソッドここで、選択時にテンプレートの名前ベースを取得しています。

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(); 
    } 
} 
+0

あなたの 'page_load'コードを表示 – Webruster

+0

私はあなたの質問を更新しました。 @Webruster – zahed

+0

このドロップダウンをどこにロードしていますか? – Webruster

答えて

0

以下のように示すように、あなたの更新パネルにTriggerを追加しますVisual Studio 2013。以下は私のページタグの詳細です。

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ViewCandidate.aspx.cs" Inherits="ViewCandidate" validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" %> 
0

てみてください、私はviewStateEncryptionMode = "決して"と私は使用していますが言及

にタグで
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="ddl_TypeofCampaign" 
EventName="SelectedIndexChanged" />  
    </Triggers> 

UPDATE

 <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> 
+0

私はあなたのコードをContentTemplateの更新パネルに追加しましたが、errrorの取得中です。要素 'AsyncPostBackTriggerは知らない要素です。これは、Webサイトにコンパイルエラーがあるか、web.configファイルが見つからない場合に発生します。 <:UpdatePanelのID = "UpdatePanel1" にrunat = "サーバー" ASP> uはあなたのコード – zahed

+0

@Webruster示してください。 mydropcode 。 @Webruster – Webruster

+0

でこれを追加する方法@zahed – zahed

関連する問題