2017-03-07 12 views
0

私は、以下のようにMySqlデータベースから来るaspドロップダウンリストから値を選択する必要があるプロジェクトに取り組んでいます:Mysql tableここからドロップダウンリストが来ています。ASP.NETでドロップダウンリストで正しい値を取得できないC#

ここは私のUIの外観はSelecting Value which came from Databaseです。ここで

は私のASPXファイルです:

<%@ Page Title="" Language="C#" MasterPageFile="~/MASTER_USER.master" AutoEventWireup="true" CodeFile="Ask_user.aspx.cs" Inherits="Ask_user" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
<div class="content-wrapper"> 
<div class="container"> 

<form class="form-horizontal" > 
<fieldset> 

<!-- Form Name --> 
<h1 align=center>ASK YOUR QUESTION!</h1> 



<!-- Multiple Radios --> 
<div class="form-group space"> 
    <label style="text-align:right;" class="col-md-4 control-label">Category</label> 
    <div class="col-md-4"> 
     <asp:DropDownList ID="DropDownList1" runat="server" CssClass="form-control" AutoPostBack="true"> 
     <asp:ListItem Value="0">Topics</asp:ListItem> 
     </asp:DropDownList> 
    </div><br /> 

</div> 

<label style="text-align:right;" class="col-md-4 control-label">Sub Category</label> 
    <div class="col-md-4"> 
     <asp:DropDownList ID="DropDownList2" runat="server" CssClass="form-control"> 
      <asp:ListItem Value="0">Sub topics</asp:ListItem> 
     </asp:DropDownList> 
    </div><br /> 

</div> 
<!-- Text input--> 

<div class="form-group space"> 
    <label style="text-align:right;" class="col-md-4 control-label" for="Title ">Title</label> 
    <div class="col-md-4"> 
    <input id="title" name="title" runat="server" placeholder="What is your question?" class="form-control input-md" type="text"> 

    </div><br /> 
</div> 

<!-- Textarea --> 
<div class="form-group space"> 
    <label style="text-align:right;" class="col-md-4 control-label" for="Disc">Description</label> 
    <div class="col-md-4">      
    <textarea class="form-control" id="Disc" runat="server" name="Disc" placeholder="A brief description about your question..."></textarea> 
    <br /> 


    <asp:Button ID="btn_ask" CssClass="btn btn-primary" runat="server" Text="ASK!" 
        OnClick="btn_insert_Click" /> 
        <span id="msg" ></span> 
    </div> 
</div> 



</fieldset> 
</form> 
</div> 
</div> 
</asp:Content> 

ここに私のCSファイルされる:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Configuration; 
using System.Data.SqlClient; 
using MySql.Data.MySqlClient; 
using System.Data; 
using System.Collections; 
using System.Web.UI.HtmlControls; 
using System.Web.SessionState; 

public partial class Ask_user : System.Web.UI.Page 
{ 
    dbconnection con = new dbconnection("connect_to_mysql"); 
    string constr = ConfigurationManager.ConnectionStrings["connect_to_mysql"].ConnectionString; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!IsPostBack) 
     { 
      string qry = "select cat_nm, cat_id from category"; 
      DataTable dt = dbconnection.ExecuteSelect(qry); 
      DropDownList1.DataSource = dt; 
      DropDownList1.DataTextField = "cat_nm"; 
      DropDownList1.DataValueField = "cat_id"; 
      DropDownList1.DataBind(); 
     } 
     else 
     { 


      string catval = DropDownList1.SelectedValue; 
      string qry = "select * from category_sub where parent_id = " + catval; 
      DataTable dt = dbconnection.ExecuteSelect(qry); 
      DropDownList2.DataSource = dt; 
      DropDownList2.DataTextField = "cat_nm"; 
      DropDownList2.DataValueField = "cat_sub"; 
      DropDownList2.DataBind();  


     } 
    } 
    protected void btn_insert_Click(object sender, EventArgs e) 
    { 


     string cat2 = DropDownList2.SelectedValue; 

     int sb = (Convert.ToInt32(Convert.ToInt32(cat2))); 
     string cat = DropDownList1.SelectedItem.Text; 
     string title1 = title.Value.ToString(); 
     string disc = Disc.Value.ToString(); 

     string uid = (Session["uid"].ToString()); 

     string query = @"insert into question(cat_sub,catg,question,q_dis,user_id)values('" + sb + "','" + cat + "','" + title1.Replace("'", "''") + "','" + disc.Replace("'", "''") + "','" + uid + "')"; 

     dbconnection.ExecuteInsert(query); 

     string info = "Success"; 
     ClientScript.RegisterStartupScript(typeof(Page), "alert", "$('#msg').addClass('alert alert-success');$('#msg').text('" + info + "');",true); 


    } 
} 

ここではcat_subの値は常に12は、Oracle上記と同じであったというし11を来ている私の問題です/ mysqlの値は8ではなく、それぞれcat_subです。

デバッグ値が来るのはその値の最初のものですが、いくつかの情報があります:https://i.stack.imgur.com/3lcq2.png

+2

..扱います。 – lenny

+0

意図する作業は何ですか?サブカテゴリーのドロップダウンリストから「切り替え」を選択した場合でも、 –

+0

cat_subの値は「12」と表示されます。 –

答えて

0

ボタンをクリックしたときに子カテゴトリバインディングコードが実行され、ボタンコードイベントの前に選択された子カテゴリが更新されます。

Page_Loadから削除します。

はDropDownList1の

OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" 

にSelectedIndexChangedイベントを追加し、ペーストビンに掲載するのではなく、あなたの質問に直接コードを追加することができます

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string catval = DropDownList1.SelectedValue; 
     string qry = "select * from category_sub where parent_id = " + catval; 
     DataTable dt = dbconnection.ExecuteSelect(qry); 
     DropDownList2.DataSource = dt; 
     DropDownList2.DataTextField = "cat_nm"; 
     DropDownList2.DataValueField = "cat_sub"; 
     DropDownList2.DataBind(); 
    } 
+0

まだ値が来ていない12 ...最初のものだけが表示されています。 –

関連する問題