asp.net下拉列表在服务器端始终没有选定值

asp.net下拉列表在服务器端始终没有选定值,asp.net,vb.net,drop-down-menu,Asp.net,Vb.net,Drop Down Menu,我有这样一个asp.net下拉列表 <asp:DropDownList width="95%" ID="RessourceComposantes" runat="server" DataSourceID="Composantes" DataTextField="Description" DataValueField="ComposanteID"> </asp:DropDownList> <asp:SqlDataSource

我有这样一个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中填充我的下拉列表,我得到了相同的结果。下拉列表已满,但当我回发时,我没有选择值

实际上,在服务器端,当我在下拉列表中放置断点时,项目计数为0。我不明白为什么。。。这就像这个项目中的第八个下拉列表,所有内容都是一样的,但这个不起作用

我不会在页面加载时进行任何绑定。都在aspx文件中

只有当我在下拉列表中添加autopostback=true SelectedIndexChanged=dd\u ressource\u composante\u SelectedIndexChanged时,它才起作用

并且在dd\u ressource\u composante\u SelectedIndexChanged中没有代码

它是服务器端的vb.net


谢谢

另外,您的数据源ID不是必须是ResourceComposantes而不是Composantes,因为这是您数据源的ID吗?

另外,您的数据源ID不是必须是ResourceComposantes而不是Composantes,因为这是您的数据源ID吗?

您在代码后面的哪里调用dd_resource_Composantes.DataBind方法?是否在页面加载事件中?如果是这样的话,您是否将该语句包装在IsPostback检查中,这样就不会在每次加载页面时都绑定它?不这样做会在每次页面发回时重置数据源和任何选定值

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


在代码隐藏中,您在哪里调用dd_ressource_composantes.DataBind方法?是否在页面加载事件中?如果是这样的话,您是否将该语句包装在IsPostback检查中,这样就不会在每次加载页面时都绑定它?不这样做会在每次页面发回时重置数据源和任何选定值

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

设置SelectedValue时,该值必须与value属性的值匹配。如果情况并非如此,则结果在所有方面都未定义。

设置SelectedValue时,该值必须与value属性的值匹配。如果不是这样的话,那么无论出于何种目的,结果都是未定义的。

如果您在页面加载事件中的某个地方调用DataBind方法,请对其进行注释,否则请将其包装在

 IF NOT IsPostBack Then
   DataBind()
 EndIF
此问题很可能是由于在触发您正在使用的事件之前重新绑定控件造成的。如果您正在获取selectedItem.Text,则SelectedValue也应存在。

如果您正在页面加载事件中的某个位置调用DataBind方法,请对其进行注释,否则请将其包装在

 IF NOT IsPostBack Then
   DataBind()
 EndIF

此问题很可能是由于在触发您正在使用的事件之前重新绑定控件造成的。如果你得到的是selectedItem.Text,那么SelectedValue也应该在那里。

这很奇怪。该控件位于一个表中,我添加了这样一行

tblRessourcesProjet.Rows.Insert(1, tr)
我把它换成了

tblRessourcesProjet.Rows.Add(tr)
我不太明白为什么这是一个问题,但它现在起作用了。
谢谢大家

那太奇怪了。该控件位于一个表中,我添加了这样一行

tblRessourcesProjet.Rows.Insert(1, tr)
我把它换成了

tblRessourcesProjet.Rows.Add(tr)
我不太明白为什么这是一个问题,但它现在起作用了。
谢谢大家

是否查看呈现的源以确保DataValueField实际包含值?请尝试dd_resource_composante.selectedvalue.Text而不是dd_resource_composante.selectedvalue是否启用了ViewState?是否查看呈现的源以确保DataValueField实际包含值?请尝试dd_resource_composante.selectedvalue.Text而不是dd_resource_composante.selectedvalue是否启用了ViewState?我非常确定您是对的,但它不起作用:谢谢您是否尝试在代码隐藏中调用dd_resource_composantes.DataBind?有可能它没有自动绑定控件。现在,无论我选择什么,我都有1。这是一个很好的开始:用一个按钮把你的价值观发回给别人,你觉得怎么样?如果没有,要自动注册所选值,必须启用下拉列表的AutoPostBack属性,因为当您在浏览器中选择新的下拉列表值时,它必须将数据发送回您正在检查该值的服务器。尝试启用AutoPostBack属性,然后在将其发回服务器后检查它。还尝试为dd_Resource_composantes创建事件处理程序。SelectedIndexChanged事件进入加载页面,键入dd_Resource_composantes。SelectedIndexChanged+=然后按TAB键两次,它会自动为您创建事件处理程序-如果您正在使用Visual Studio并检查该事件中的值。我确信您是对的,但它不起作用:谢谢您是否尝试在代码隐藏中调用dd_ressource_composantes.DataBind?有可能它没有自动绑定控件。现在,无论我选择什么,我都有1。这是一个很好的开始:你和我们一样

是否取消按钮以回发您的值?如果没有,要自动注册所选值,必须启用下拉列表的AutoPostBack属性,因为当您在浏览器中选择新的下拉列表值时,它必须将数据发送回您正在检查该值的服务器。尝试启用AutoPostBack属性,然后在将其发回服务器后检查它。还尝试为dd_Resource_composantes创建事件处理程序。SelectedIndexChanged事件进入加载页面,键入dd_Resource_composantes。SelectedIndexChanged+=然后按TAB键两次,它将自动为您创建事件处理程序-如果您使用Visual Studio并检查该事件中的值。SelectedValue仍将返回。也很抱歉,请张贴您实际尝试检索SelectedValues的位置所有代码都在那里。我将尝试以我在vb.net中使用的方式进行绑定,aspx.vb fileSelectedValue仍然返回。也很抱歉,请张贴您实际尝试检索SelectedValues的位置所有代码都在那里。我将尝试在aspx.vb文件中使用我在vb.net中习惯的方式进行绑定,我不确定我是否理解。我正在尝试使用SelectedValues获取值您是在尝试检索所选值还是所选文本?这个问题很模糊。对不起。我正在尝试获取值。当您检查控件的SelectedIndex属性时,会得到什么?是-1吗?如果不是-1,请尝试检索list.Items[list.SelectedIndex].Value。自然地,用控件的名称替换列表。这解释了为什么您会得到。没有选择任何项目。现在你需要做一些研究。为什么没有选定的项目?这才是真正的问题。我不确定我是否理解。我正在尝试使用SelectedValues获取值您是在尝试检索所选值还是所选文本?这个问题很模糊。对不起。我正在尝试获取值。当您检查控件的SelectedIndex属性时,会得到什么?是-1吗?如果不是-1,请尝试检索list.Items[list.SelectedIndex].Value。自然地,用控件的名称替换列表。这解释了为什么您会得到。没有选择任何项目。现在你需要做一些研究。为什么没有选定的项目?这才是真正的问题。