簡體   English   中英

在ASP.NET的C#中更新DropDownList的DataSource

[英]Updating the DataSource of a DropDownList in ASP.NET's C#

我有一個使用DropDownList的編輯表單,使用DataSource連接到SQL服務器表。 此編輯表單允許用戶將表的“IsDeleted”列值設置為1,然后將其隱藏在所有應用程序的查詢中。 (所以事務仍然存在於數據庫中,但不存在於應用程序中)

我遇到的問題是,如果編輯表單所在的頁面未完全保留,然后再次輸入,則該條目仍保留在DataSource中。

基本上,DataSource沒有更新。 (它不會運行其select語句並重新填充,直到重新加載整個頁面)。 我試圖使用頁面刷新,它似乎不起作用,只是完全轉到另一個頁面然后回來似乎更新數據源。

如何以編程方式刷新DataSource的內容而無需重新創建整個DataSource本身?

您可能希望下次添加一些代碼。 我現在最好的猜測是你沒有做任何OnPostback。

所以我最終采取了我不想做的事情,希望有一種“最佳實踐”的方式來實現它(希望已經內置到DataSources中),但似乎不是。

所需要的只是再次將DataSource的參數重新分配給它,然后將DataSource分配回DropDownList,就像我創建一個新的一樣。

我創建了以下方法,然后在刪除按鈕的事件結束時調用該方法。

protected void DropDownList_Reload()
    {
        MyDataSource.ConnectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
        MyDataSource.SelectCommand = "SELECT * FROM [tblMyTable] WHERE [IsDeleted] <> 1";

        cbxDropDownList.DataSourceID = "MyDataSource";
        cbxDropDownList.DataTextField = "MyHeader";
        cbxDropDownList.DataValueField = "MyHeader";
    }

暫無
暫無

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

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