2012-02-03 76 views
1

始終沒有選定值我有這樣asp.net下拉服務器端

<asp:DropDownList width="95%" ID="RessourceComposantes" runat="server"  
     DataSourceID="Composantes" 
     DataTextField="Description" DataValueField="ComposanteID"> 
</asp:DropDownList> 

<asp:SqlDataSource ID="RessourceComposantes" runat="server" 
     ConnectionString="<%$ ConnectionStrings:OraEntities %>" 
     SelectCommand="SELECT [Blabla], [blablabla] FROM [blablablaa] 
     ORDER BY [blablablabla]"> 
</asp:SqlDataSource> 

一個asp.net下拉這是正常的,當我做dd_ressource_composante.selectedvalue在服務器端我沒有任何價值。總是如此 」」。

來源是這樣的:

 <select name="ctl00$Tab$dd_ressource_composante" id="ctl00_Tab_dd_ressource_composante" style="width:95%;"> 
     <option value="1">Composante</option> 
     <option value="3">DGAG</option> 
     <option value="2">DSF</option> 
     <option value="5">Test</option> 
     <option value="6">Tous</option> 

     <option value="4">VMD</option> 

    </select> 

我只是試圖填補我的下拉在vb.net和我有同樣的結果。下拉列表已滿,但當我做回發時,我沒有選定的值

Actualy在服務器端,當我把一個斷點放在下拉列表中,項目數量是0.我不明白爲什麼......這就像這個項目中的第8個下拉列表和一切都是一樣的,但這個不起作用。

我不會對頁面加載做任何綁定。它全部在aspx文件中

當它爲下拉菜單添加autopostback =「true」SelectedIndexChanged =「dd_ressource_composante_SelectedIndexChanged」時它就可以工作。

而且那裏有在dd_ressource_composante_SelectedIndexChanged

這對服務器端vb.net無碼

謝謝

+1

您是否查看呈現的源以確保DataValueField實際上包含值? – ScottE 2012-02-03 19:33:46

+0

請嘗試_dd_ressource_composante.selectedvalue.Text_而不是dd_ressource_composante.selectedvalue – Wahtever 2012-02-03 19:36:27

+0

您是否啓用了ViewState? – mclark1129 2012-02-03 20:07:24

回答

1

那很奇怪。那種控制表,我添加了一行,這樣

tblRessourcesProjet.Rows.Insert(1, tr) 

,我改變了它的

tblRessourcesProjet.Rows.Add(tr) 

我不明白相當不錯,爲什麼這是一個問題,但現在的工作。 謝謝大家!

1

而且,沒有你的DataSourceID必須是「RessourceComposantes」,而不是「Composantes」因爲那是你的數據源的ID?

+0

我很確定你是對的,但它不起作用:(謝謝 – Marc 2012-02-03 19:45:49

+0

你有沒有嘗試在代碼隱藏中調用dd_ressource_composantes.DataBind()?它可能不會自動綁定控件 – Anshul 2012-02-03 19:49:15

+0

現在,無論如何我選擇的是「1」,這是一個好的開始:P – Marc 2012-02-03 20:00:35

2

你在哪裏調用你的dd_ressource_composantes.DataBind()方法的代碼隱藏?它是否在Page_Load事件中?如果是這樣,是否將該語句包裝在IsPostback檢查中,以便每次加載頁面時都不會綁定它?不這樣做會重置您的數據源和任何選定的值,每次頁面回發。

If (Not Page.IsPostBack) Then 
    dd_ressource_composantes.DataBind() 
End If 

' No IsPostBack check 
dd_ressource_composantes.DataBind() 
+0

SelectedValue仍然返回「」。對不起 – Marc 2012-02-03 20:04:52

+0

請發佈您的數據綁定代碼隱藏。 – mclark1129 2012-02-03 20:06:41

+0

此外,請發佈您實際嘗試檢索SelectedValue的地方 – mclark1129 2012-02-03 20:17:04

1

當設置SelectedValue,值必須與Value屬性的值相匹配。如果情況並非如此,那麼對於所有意圖和目的而言,結果都是未定義的。

+0

我不知道我明白。我正在嘗試使用SelectedValue獲取值 – Marc 2012-02-03 20:06:09

+0

您是試圖檢索選定的值還是選定的文本?這個問題相當模糊。 – 2012-02-03 20:11:57

+0

對不起。我試圖獲得價值。 – Marc 2012-02-03 20:18:48

1

如果你在你的Page_Load事件調用某個方法DataBind()請評論,否則將它包裝在

IF NOT IsPostBack Then 
    DataBind() 
EndIF 

This problem is most likely caused by rebinding the control before the event you are using is fired。如果你正在獲取selectedItem.Text,那麼SelectedValue也應該在那裏。