![](/img/trans.png)
[英]How to show item in dropdownlist as being selected when we have corresponding datatextfield from gridview selected row
[英]How to change the displayed text in a DropDownList DataTextField based on a table row selected?
您可以使用 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.