簡體   English   中英

如何根據選定的表格行更改 DropDownList DataTextField 中顯示的文本?

[英]How to change the displayed text in a DropDownList DataTextField based on a table row selected?

我有這個DropDownlist截圖:

在此處輸入圖像描述

我想要做的是根據選定的表格行更改DropDownList的顯示文本。 我在下面有這段代碼,但它不起作用。 我正在使用 C# 和 ASP.NET 順便說一句。

C# 代碼:

drpDepartment.DataTextField = grdRecentCases.SelectedRow.Cells[1].Text;
drpCharge.DataTextField = grdRecentCases.SelectedRow.Cells[2].Text;

您可以使用 Text 更改 2 個下拉列表(ddl,下拉列表)的值,但前提是 ddl 的下拉列表是單列下拉列表。 如果下拉列表有兩列,並且它們經常這樣做,例如“ID”和部門,但您只顯示部門文本,但第一個“id”列驅動下拉列表?

然后當 ddl 具有或綁定到兩列時,您必須通過“ID”(ddl 的隱藏列)設置 Text 值。

在您的情況下,您似乎只有網格中的“文本”,因此您必須為此目的在 ddl 中使用 a.find 。

例子:

下榻酒店的數據:

在此處輸入圖像描述

所以,我們的標記:

        <h3>Select Hotel</h3>
        <asp:DropDownList ID="drpHotels" runat="server"                
            DataValueField="ID"
            DataTextField="HotelName" 
            AppendDataBoundItems="true" Width="130px" >

                <asp:ListItem Text="Select" Value="0"></asp:ListItem>

         </asp:DropDownList>

我們要加載的代碼:

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

    void LoadDrops()
    {
        DataTable rstOptions = 
            MyRst("SELECT ID, HotelName FROM tblHotelsA ORDER BY HotelName");

        drpHotels.DataSource = rstOptions;
        drpHotels.DataBind();
    }

現在我們有了這個:

在此處輸入圖像描述

那么,在后面的代碼中,說我想將 ddl 設置為“瑞士村”?

我不能 go

 drpHotels.Text = "Swiss Village"

(ddl 有兩列)。

但是,我可以 go:

drpHotels.Text = "6";   // Swiss Village PK (id) is 6 from table

所以,你在這里有一個選擇:

您可以獲取文本值,根據網格中的實際文本值查詢數據庫,轉換為“id”,然后將其推送到文本屬性中。

或者,您可以根據文本值對 ddl 進行“查找”。

        string strTest = "Swiss Village";
        drpHotels.ClearSelection();
        drpHotels.Items.FindByText(strTest).Selected = true;

因此,您可以通過“id”或您擁有的第一個隱藏列設置 ddl,或者您使用上面的內容通過“文本”值(第 2 列)按上述方式“查找”項目。

暫無
暫無

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

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