簡體   English   中英

更改數據時下拉列表未更新

[英]Drop down list not updated when data changed

我有一個數據綁定類別的下拉列表。 從中進行的選擇將填充gridview。 當我刪除類別時,它會成功更新我的產品的網格視圖(不顯示任何條目),但是在我重新運行程序之前,不會更新類別的下拉列表。

我的頁面加載:

protected void Page_Load(object sender, EventArgs e)
    {
        // Check if loaded for first time.
        if (!IsPostBack)
        {
            // Bind the data displayed in the Dropdownlists.
            Login.SelectAllCat(DropListCat);

        }
    }

我的代碼刪除一個類別:

protected void BtnDeleteCat_Click(object sender, EventArgs e)
    {
        try
        {
            // Get int id from selectioin in drop down list.
            int id = Convert.ToInt32(DropListCat.SelectedValue.ToString());
            // Call method to open data base, create command from stored procedure and delete item to database.
            Login.DeleteCategory(id);
            // Update the data displayed in the Dropdownlists.
            Login.SelectAllCat(DropListCat);


        }
        catch (NullReferenceException)
        {
            LblProdId.Text = "No Category Selected!";
        }
    }

我的下拉列表:

<asp:DropDownList ID="DropListCat" runat="server" BackColor="#66FFFF"
            Width="200px" AutoPostBack="True" AppendDataBoundItems="True">
</asp:DropDownList>

我的連接和綁定代碼。 Login class

// Method to select all categories and display them in dropdown lists.
public static void SelectAllCat(DropDownList list)
{
    // SqlConnection.
    SqlConnection con = new SqlConnection(conString);
    // Create new command and parameterise.
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "SelectAllCat";
    //
    // Adapted from
    // Source link: http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/data-binding-to-dropdownlist-and-listbox-in-Asp-Net/
    //
    cmd.Connection = con;
    try
    {
        // Open connection and bind data to GUI.
        con.Open();

        list.DataSource = cmd.ExecuteReader();
        list.DataTextField = "CatName";
        list.DataValueField = "CatID";
        list.DataBind();

    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        con.Close();
        con.Dispose();
    }
}

我的存儲過程:

CREATE PROCEDURE SelectAllProd
AS
    SELECT * FROM Prod;
GO

這是我嘗試刪除類別后的結果。
當我重新運行該項目時,該類別將被刪除。
在此處輸入圖片說明

編輯

實際上,它正在刪除類別,但保留了頁面加載時的原始數據綁定。 所以我想我需要弄清楚如何擦除它。

    DropListCat.DataBind(); 

在BtnDeleteCat_Click中

我通過在重新綁定數據之前清除下拉列表項來修復它,如下所示:

// Method to select all categories and display them in dropdown lists.
    public static void SelectAllCat(DropDownList list)
    {
        // Clear any previously bound items.
        list.Items.Clear(); 
        // etc.../

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM