最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

解決DropDownList總是選中第一項的方法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:38:07
文檔

解決DropDownList總是選中第一項的方法

解決DropDownList總是選中第一項的方法:在網(wǎng)頁開發(fā)的過程中,在頁面中使用了一個 DropDownList 服務(wù)器控件,發(fā)現(xiàn)了一個很奇怪的問題,不論在頁面中選中哪一項,在后臺獲取到的值總是第一項的值,看了好久也沒有發(fā)現(xiàn)問題出在哪里,DropDownList控件在開發(fā)中已經(jīng)使用了無數(shù)遍了,對照了其他代碼都是一
推薦度:
導(dǎo)讀解決DropDownList總是選中第一項的方法:在網(wǎng)頁開發(fā)的過程中,在頁面中使用了一個 DropDownList 服務(wù)器控件,發(fā)現(xiàn)了一個很奇怪的問題,不論在頁面中選中哪一項,在后臺獲取到的值總是第一項的值,看了好久也沒有發(fā)現(xiàn)問題出在哪里,DropDownList控件在開發(fā)中已經(jīng)使用了無數(shù)遍了,對照了其他代碼都是一

在網(wǎng)頁開發(fā)的過程中,在頁面中使用了一個 DropDownList 服務(wù)器控件,發(fā)現(xiàn)了一個很奇怪的問題,不論在頁面中選中哪一項,在后臺獲取到的值總是第一項的值,看了好久也沒有發(fā)現(xiàn)問題出在哪里,DropDownList控件在開發(fā)中已經(jīng)使用了無數(shù)遍了,對照了其他代碼都是一樣的!

經(jīng)過了幾分鐘之后,實在是看不出問題在哪里只好到網(wǎng)上查找答案,網(wǎng)上果然有不少人遇到“一樣”的問題—— DropDownList 總是選中第一項。網(wǎng)上的解決方法都是說在 DropDownList 綁定時要在 Page_Load 事件要使用 if(!IsPostBack),可是我是這樣綁定的,在網(wǎng)上還是沒有找到解決的方法。

后來,自己靜靜地左思右想,是不是因為自己在綁定DropDownList 的時候,只給Text 賦值,而沒有給 Value 賦值導(dǎo)致的呢?接著我就嘗試把每一項的Value 賦值,果然沒有這樣的現(xiàn)象了!

現(xiàn)在總結(jié) DropDownList 控件總是選中第一項的兩種原因。

情況一,請看下面的代碼:
客戶端代碼:

<asp:DropDownListID="ddl1"runat="server">
</asp:DropDownList>

服務(wù)端代碼:

protected void Page_Load(object sender, EventArgs e)
{
 BindDropDownList();
}
 
private void BindDropDownList()
{
 ddl1.Items.Clear(); //每次綁定前,先清除所有項
 for (int i = 1; i <= 3; i++)
 {
 ListItem item1 = new ListItem();
 item1.Text = "第" + i.ToString() + "項";
 item1.Value = "第" + i.ToString() + "項";
 ddl1.Items.Add(item1);
 }
}

上面代碼案例,也就是網(wǎng)上說的總是選中第一項(選擇不能改變選項),綁定方法寫在 if (!IsPostBack) 里就可以解決了,代碼如下:

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

情況二,即是筆者遇到的,請看下面的代碼:
客戶端代碼:

<asp:DropDownList ID="ddl1" runat="server">
</asp:DropDownList>
 <asp:Button ID="btnGet" runat="server" Text="獲取" onclick="btnGet_Click" />

服務(wù)端代碼:

protected void Page_Load(object sender, EventArgs e)
{
 if (!IsPostBack)
 {
 BindDropDownList();
 }
}
 
private void BindDropDownList()
{
 ddl1.Items.Clear(); //每次綁定前,先清除所有項
 for (int i = 1; i <= 3; i++)
 {
 ListItem item1 = new ListItem();
 item1.Text = "第" + i.ToString() + "項";
 item1.Value = "";
 ddl1.Items.Add(item1);
 }
}
 
protected void btnGet_Click(object sender, EventArgs e)
{
 string str = ddl1.SelectedItem.Text;
 Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('" + str + "');</script>");
}

注意 item1.Value 這個地方,是沒有賦值的,然而導(dǎo)致獲取 Text 的值錯亂了,只要給 Value 賦上值就沒有問題了!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

解決DropDownList總是選中第一項的方法

解決DropDownList總是選中第一項的方法:在網(wǎng)頁開發(fā)的過程中,在頁面中使用了一個 DropDownList 服務(wù)器控件,發(fā)現(xiàn)了一個很奇怪的問題,不論在頁面中選中哪一項,在后臺獲取到的值總是第一項的值,看了好久也沒有發(fā)現(xiàn)問題出在哪里,DropDownList控件在開發(fā)中已經(jīng)使用了無數(shù)遍了,對照了其他代碼都是一
推薦度:
標(biāo)簽: 一個 方法 解決
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top