2016-06-17 2 views
1

私は、更新パネル内にあり、ブートストラップモーダルで起動するフォームを持っています。私はカスケーディングリストを持っています。最初にDropDownListが変更された場合は、DropDownListが読み込まれます。しかし、最初にDropDownListのページリロードが変更されました。背後c#DropDownListが選択されました。ブートパネルのモーダルでupdatepanelで変更されました

<asp:UpdatePanel ID="updPanel1" runat="server" UpdateMode="Conditional" > 
     <ContentTemplate> 
      <div class="modal fade" tabindex="-1" role="dialog" id="yenitalep"> 
       <div class="modal-dialog"> 
        <div class="modal-content"> 
         <div class="modal-header"> 
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
          <h4 class="modal-title">Form</h4> 
         </div> 
         <div class="modal-body"> 

          <div class="form-group"> 
           <label for="envanter">Tip</label> 
           <asp:DropDownList ID="ddlTip" runat="server" CssClass="form-control" OnSelectedIndexChanged="ddlTip_SelectedIndexChanged"></asp:DropDownList> 
          </div> 
          <div class="form-group"> 
           <asp:DropDownList ID="ddlTip1" runat="server" CssClass="form-control level1"></asp:DropDownList> 
          </div> 

         </div> 

        </div><!-- /.modal-content --> 
       </div><!-- /.modal-dialog --> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlTip" /> 
     </Triggers> 
    </asp:UpdatePanel> 

C#コード:

protected void ddlTip_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     short id = short.Parse(ddlTip.SelectedValue); 

     List<servisTipleri> list = ServisTipController.childs(id); 
     ddlTip1.DataSource = list; 
     ddlTip1.DataTextField = "title"; 
     ddlTip1.DataValueField = "id"; 
     ddlTip1.DataBind(); 


    } 

どのように私はさわやかなページなく、第2のDDLを読み込むことができます。

+0

あなたは第二DropDownListコントロールの値を取得することができますか?最初のドロップダウンのAutoPostBack = "true"というイベントを発生させなかったためです –

答えて

1

だけ内のモーダル<div>を更新パネルを置く:

<div class="modal fade" tabindex="-1" role="dialog" id="yenitalep"> 
    <asp:UpdatePanel ID="updPanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <div class="modal-dialog"> 
       <div class="modal-content"> 
        <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
         <h4 class="modal-title">Form</h4> 
        </div> 
        <div class="modal-body"> 

         <div class="form-group"> 
          <label for="envanter">Tip</label> 
          <asp:DropDownList ID="ddlTip" runat="server" CssClass="form-control" OnSelectedIndexChanged="ddlTip_SelectedIndexChanged" AutoPostBack="true"> 
           <asp:ListItem Text="1" Value="1" /> 
           <asp:ListItem Text="2" Value="2" /> 
           <asp:ListItem Text="3" Value="3" /> 
          </asp:DropDownList> 
         </div> 
         <div class="form-group"> 
          <asp:DropDownList ID="ddlTip1" runat="server" CssClass="form-control level1"></asp:DropDownList> 
         </div> 

        </div> 

       </div> 
       <!-- /.modal-content --> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlTip" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</div> 
+0

ソリューションをありがとうございます。 –

0

これは私がやった方法であり、私のために正常に動作します。これがあなたに役立つことを願っています

これは私のx_dropdownDemo_no_postback.aspxファイルです。

<form id="form1" runat="server"> 
    <%=DateTime.Now.ToString() %> 

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

    <asp:UpdatePanel ID="updPanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 

      <asp:DropDownList ID="ddlTip" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlTip_SelectedIndexChanged"> 
      </asp:DropDownList> 
      <br /> 
      <asp:DropDownList ID="ddlTip1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlTip1_SelectedIndexChanged"> 
      </asp:DropDownList> 
      <br /> 

      <asp:DropDownList ID="ddlTip2" runat="server"> 
      </asp:DropDownList> 

     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlTip" /> 
      <asp:AsyncPostBackTrigger ControlID="ddlTip1" /> 
     </Triggers> 
    </asp:UpdatePanel> 

</form> 

これは私のx_dropdownDemo_no_postback.csファイルです。

公共部分クラスのx_dropdownDemo_no_postback:{

private static string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnString"].ConnectionString; 
MySqlConnection Conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["DBConnString"].ConnectionString); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     Binddropdown(); 
    } 
} 
protected void Binddropdown() 
{ 

    Conn.Open(); 
    MySqlCommand cmd = new MySqlCommand("select * from Countries", Conn); 
    MySqlDataAdapter da = new MySqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    Conn.Close(); 
    ddlTip.DataSource = ds; 
    ddlTip.DataTextField = "Name"; 
    ddlTip.DataValueField = "Id"; 
    ddlTip.DataBind(); 
    ddlTip.Items.Insert(0, new ListItem("--select--", "0")); 
    ddlTip1.Items.Insert(0, new ListItem("--select--", "0")); 
    ddlTip2.Items.Insert(0, new ListItem("--select--", "0")); 
} 

protected void ddlTip_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    int ddlTipId = Convert.ToInt32(ddlTip.SelectedValue); 
    Conn.Open(); 
    MySqlCommand cmd = new MySqlCommand("select * from State where Country_Id=" + ddlTipId, Conn); 
    MySqlDataAdapter da = new MySqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    Conn.Close(); 
    ddlTip1.DataSource = ds; 
    ddlTip1.DataTextField = "Name"; 
    ddlTip1.DataValueField = "Id"; 
    ddlTip1.DataBind(); 
    ddlTip1.Items.Insert(0, new ListItem("--select--", "0")); 
    if (ddlTip1.SelectedValue == "0") 
    { 
     ddlTip2.Items.Clear(); 
     ddlTip2.Items.Insert(0, new ListItem("--select--", "0")); 
    } 
} 

protected void ddlTip1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    int ddlTip1Id = Convert.ToInt32(ddlTip.SelectedValue); 
    Conn.Open(); 
    MySqlCommand cmd = new MySqlCommand("select * from Region where State_Id=" + ddlTip1Id, Conn); 
    MySqlDataAdapter da = new MySqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    Conn.Close(); 
    ddlTip2.DataSource = ds; 
    ddlTip2.DataTextField = "Name"; 
    ddlTip2.DataValueField = "Id"; 
    ddlTip2.DataBind(); 
    ddlTip2.Items.Insert(0, new ListItem("--select--", "0")); 
} 

} System.Web.UI.Page

+0

あなたの貢献に感謝します –

関連する問題