0

ドロップダウンの項目リストには [はい] と [いいえ] しかありませんが、[いいえ] を 3 回選択すると、ドロップダウン リストに 3 回表示されるため、ドロップダウンから選択するたびに重複します。選択後、選択に基づいてバックエンドを [はい] または [いいえ] に更新するストアド プロシージャを呼び出します。ここで困っているので助けてください。ありがとうこれが私のDD用のASPXコードです

<asp:DropDownList ID="My_DD" runat="server" 
              AutoPostBack="true" DataTextField="ItemCompleted" AppendDataBoundItems="true" OnSelectedIndexChanged="DD_Changed" 
              DataValueField="ItemCompleted">
              <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
                        <asp:ListItem Text="No" Value="No"></asp:ListItem>
          </asp:DropDownList>

コードビハインドは次のとおりです。

protected void DD_Changed(object sender, EventArgs e)
    {
        DropDownList My_DD = (DropDownList)sender;

        this.Bind_DD();

    }   

    protected void Bind_DD()
    {

        string myVar;
        myVar= My_DD.SelectedValue.ToString();
        string ID;
        ID = Request.QueryString["ID"];
        DataTable dt = new DataTable();
        String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(strConnString);
        SqlDataAdapter sda = new SqlDataAdapter();
        SqlCommand cmd = new SqlCommand("sp_DD");
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@myVAr", SqlDbType.VarChar).Value = myVar;
        cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID;
        cmd.Connection = con;
        sda.SelectCommand = cmd;

        sda.Fill(dt);
        My_DD.DataSource = dt;

        My_DD.DataBind();

    }

ページ読み込みコードはこちら:

 protected void Page_Load(object sender, EventArgs e)
    {
        string Post_ID = Page.RouteData.Values["Post_ID"] as string;

        if (!IsPostBack)
        {
            BindData();
            BindData_ActionItems();

            //load DV_New
            LoadDetailView_New();       

        }

    }
4

1 に答える 1

1

私が理解しているようにコードから何が起こるか:はい/いいえをクリックして、同じドロップダウンリスト内のデータをdbからの値で再バインドします。エラーは発生しませんが、データベースからアイテムを再度追加する前に、ドロップダウンリストを再クリアしてみてください

protected void Bind_DD()
{

    string myVar;
    myVar= My_DD.SelectedValue.ToString();
    string ID;
    ID = Request.QueryString["ID"];
    DataTable dt = new DataTable();
    String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
    SqlConnection con = new SqlConnection(strConnString);
    SqlDataAdapter sda = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand("sp_DD");
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@My_DD", SqlDbType.VarChar).Value = My_DD;
    cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID;
    cmd.Connection = con;
    sda.SelectCommand = cmd;

    sda.Fill(dt);

    My_DD.Items.Clear();

    My_DD.DataSource = dt;
    My_DD.DataBind();

}
于 2013-08-14T20:33:00.800 に答える