摘要:[ASP.net]連動選取gridview某列後,觸發改變外部dropdownlist的被選取項目
若在gridview中,我有設定了只要按下「選取」後,該列中的每個格子的文字會自動填入我網頁上的每個textbox中,
但有個問題,
我gridview中的第二欄是部門,如有「管理部、會計部...」,
在gridviw外有個下拉式選單也有「管理部、會計部...」的選項,
我怎麼讓gridview被取後,外面的下拉式選單會自動對應到相同項目呢?
如讓gridview被取的第二欄裡的文字是「會計部」,postback後外面的下拉式選單同時
也跳到「會計部」呢?
下列語法可做到:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(GridView1 .SelectedIndex );
DropDownList_subject.SelectedValue = DropDownList_subject.Items.FindByText(GridView1.Rows[i].Cells[5].Text).Value;
//DropDownList1.SelectedValue = DropDownList1.Items.FindByText("你想要的字串").Value
}
以上另可寫防呆的IF,點選gridview後若外部的下拉選單中找不到對應的項目,
就讓下拉選單維持預設項目:
if (DropDownList_subject.Items.FindByText(GridView1.Rows[i].Cells[5].Text) == null)
{
DropDownList_subject.SelectedIndex = 0;
}
else
{
DropDownList_subject.SelectedValue = DropDownList_subject.Items.FindByText(GridView1.Rows[i].Cells[5].Text).Value;
}
另有一段語法在網上查到的,先筆記下來或許未來會用得到:
※DropDownList要怎麼根據Text或Value改變他的選取值
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("text"));
DropDownList1.SelectedValue = "XXX"; // 如果只要根據Value選擇,直接這樣寫就好
另
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("A003"));
若是複選式的選單的話,如CheckBoxList,另一位網友提供了下列語法給我參考:
protected void Page_Load(object sender, EventArgs e)
{
string[] data = new string[] { "人事部", "會計部", "總務科" };
foreach (string mydata in data)
{
CheckBoxList1.Items.FindByText(mydata).Selected = true;
}
}
再把迴圈的部分從Array改成GridView的欄位。
--
強烈建議購物網店或實體店家都必須使用關鍵字廣告or原生廣告來 將Yahoo上與聯播網的廣大流量導至自己的網站!
●Yahoo關鍵字廣告/原生廣告
◆Yahoo廣告方案介紹 : https://goo.gl/5k8FHW
◆Yahoo廣告剖析與運用 : http://goo.gl/4xjUJD