C# 下拉列表未选择值asp.net

C# 下拉列表未选择值asp.net,c#,asp.net,c#-4.0,drop-down-menu,C#,Asp.net,C# 4.0,Drop Down Menu,在ddlBankAcc Dropdownlist选择中,我正在填充更新面板中的Datagrid 但是,此语句ddlBanAcc.SelectedValue未执行代码且未选择任何值 编辑:HTML代码 ddlBanAcc.Items.Insert(0, new ListItem("", "")); string s = ddlBanAcc.SelectedValue; string[] words = s.Split('|'); if (ddlBanAcc.SelectedInde

在ddlBankAcc Dropdownlist选择中,我正在填充更新面板中的Datagrid

但是,此语句ddlBanAcc.SelectedValue未执行代码且未选择任何值

编辑:HTML代码

  ddlBanAcc.Items.Insert(0, new ListItem("", ""));
  string s = ddlBanAcc.SelectedValue;
  string[] words = s.Split('|');
  if (ddlBanAcc.SelectedIndex > 1)
  {
    query += "'and DtaLineAccountToDebit='" + words[0] + "'";
  }
尝试在后端定义DataTextField和DataValueField。这应该会有所帮助


尝试在后端定义DataTextField和DataValueField。这应该会有所帮助

您需要将AutoPostBack=true添加到DropDownList中,以便将其发回。我想这就是代码没有执行的原因。

您需要将AutoPostBack=true添加到DropDownList中,才能将其发回。我认为这就是代码没有执行的原因。

您需要检查IsPostBack,如果是,则不要进行数据绑定,因为这会使DropDownList重新获取其所有值,并丢失选择

    <asp:DropDownList ID="ddlBanAcc" runat="server" DataTextField="" DataValueField="">
    </asp:DropDownList>
特别是在DropDownList(将其值保留在ViewState上)上,您需要使用IsPostBack返回到填写的完整过程。最终代码为:

if(!IsPostBack)
    ddlBanAcc.DataBind();
如果出于任何其他原因,您需要进行数据绑定并更改DropDownList的内容,即使在其选择之后,您也可以始终使用请求获取回发值。表单如下:


您需要检查IsPostBack,如果是,则不要进行数据绑定,因为这会使DropDownList重新获取其所有值,并丢失选择

    <asp:DropDownList ID="ddlBanAcc" runat="server" DataTextField="" DataValueField="">
    </asp:DropDownList>
特别是在DropDownList(将其值保留在ViewState上)上,您需要使用IsPostBack返回到填写的完整过程。最终代码为:

if(!IsPostBack)
    ddlBanAcc.DataBind();
如果出于任何其他原因,您需要进行数据绑定并更改DropDownList的内容,即使在其选择之后,您也可以始终使用请求获取回发值。表单如下:



还有一个更令人惊讶的问题可能导致这种情况!我的列表值来自数据库,这些值具有换行符和回车符:\r\n。这些值看起来像一个无辜的空间,但实际上它们不是!我的解决方案是删除这些隐藏的字符值。希望能有所帮助。

还有一个令人惊讶的问题可能导致这种情况!我的列表值来自数据库,这些值具有换行符和回车符:\r\n。这些值看起来像一个无辜的空间,但实际上它们不是!我的解决方案是删除这些隐藏的字符值。希望有帮助。

也从HTML部分粘贴一些代码,以便我们可以找到解决方案…………您在ddlBanAcc中选择了一个项目了吗?如果您不这样做,拆分将失败。是的,我确实在ddlBanAcc中选择了一个项目也从HTML部分粘贴一些代码,以便我们可以找到解决方案………您在ddlBanAcc中选择了一个项目吗?如果您不这样做,则拆分将失败。是,我确实在DDLBANACC中选择了一个项目给出您各自的DataTextField和DataValueField是,我已经看到尝试给出DataValueField,但我无法指定DataValue字段,因为在am中连接了这些值,并且没有使用特定列为您使用SelectedValue填充DropDownList。因此,您需要有DataFieldValueI已将CONCATE指定为我的DataValueField它仍然不起作用给出您各自的DataTextField和DataValueField Yes已看到尝试给出DataValueField alsoi无法指定DataValue字段,因为在am中连接了这些值,并且没有使用特定列填充DropDownList供您使用SelectedValue。所以你需要有DataFieldValue我已经指定CONCATE作为我的DataValueField它仍然不起作用没有仍然没有得到任何值没有仍然没有得到任何值
if(!IsPostBack)
{
    DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE  From VwCieBankAcc");
    ddlBanAcc.DataTextField = "CONCATE";
    ddlBanAcc.DataSource = dtbankaccount;

    ddlBanAcc.DataBind();
}
Request.Form[DromDownListID.UniqueID]