我有一个像这样的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>
当我在服务器端执行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中填充我的下拉列表,我得到了同样的结果。dropdown已满,但当我执行回发时,未选择任何值
实际上,在服务器端,当我在下拉列表中放置断点时,项计数为0。我不明白为什么..。这就像这个项目中的第8个下拉列表,所有东西都是一样的,但这个不起作用。
我不会在页面加载上做任何绑定。都在aspx文件中
只有当我为下拉菜单添加autopostback="true“SelectedIndexChanged="dd_ressource_composante_SelectedIndexChanged”时,它才会起作用。
而且在dd_ressource_composante_SelectedIndexChanged中没有代码
它是服务器端的vb.net
谢谢
发布于 2012-02-06 15:37:02
那就奇怪了。该控件位于一个表中,我添加了如下一行
tblRessourcesProjet.Rows.Insert(1, tr)
我把它改成了
tblRessourcesProjet.Rows.Add(tr)
我不太明白为什么它是一个问题,但现在它起作用了。谢谢大家!
发布于 2012-02-03 19:59:07
您将在代码隐藏中的何处调用dd_ressource_composantes.DataBind()方法?它在Page_Load事件中吗?如果是这样的话,您是否将该语句包装在IsPostback检查中,这样就不会在每次页面加载时都绑定它?如果不这样做,则会在每次页面回发时重置DataSource和任何选定的值。
If (Not Page.IsPostBack) Then
dd_ressource_composantes.DataBind()
End If
不
' No IsPostBack check
dd_ressource_composantes.DataBind()
发布于 2012-02-03 19:38:50
另外,你的DataSourceID不是必须是"RessourceComposantes“而不是"Composantes”吗,因为那是你的数据源的ID?
https://stackoverflow.com/questions/9134420
复制相似问题