繁体   English   中英

下拉列表未选择值asp.net

[英]Dropdown list not selecting value asp.net

  ddlBanAcc.Items.Insert(0, new ListItem("", ""));
  string s = ddlBanAcc.SelectedValue;
  string[] words = s.Split('|');
  if (ddlBanAcc.SelectedIndex > 1)
  {
    query += "'and DtaLineAccountToDebit='" + words[0] + "'";
  }

在ddlBankAcc(Dropdownlist选择)上,我填充了“更新面板”中的Datagrid

但是,代码未执行,该语句ddlBanAcc.SelectedValue;没有选择任何值ddlBanAcc.SelectedValue;

编辑:HTML代码

<td align="left" valign="top">
                            &nbsp;</td>
                 <td>
                            Bank Account:
                        </td>
                        <td>
 <asp:DropDownList runat="server" ID="ddlBanAcc" Width="160px" TaEvalex="3">
    </asp:DropDownList>

                        </td>

编辑:我如何在ddlBanAcc中添加数据

DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE  From VwCieBankAcc");
    ddlBanAcc.DataTextField = "CONCATE";
    ddlBanAcc.DataSource = dtbankaccount;

    ddlBanAcc.DataBind();

您需要检查IsPostBack,如果不是,请不要使用DataBind,因为这会使DropDownList重新获取他的所有值,并且丢失选择。

if(!IsPostBack)
    ddlBanAcc.DataBind();

特别是在DropDownList上,将其值保留在ViewState上,您需要使用IsPostBack填充整个过程。最终代码将是:

if(!IsPostBack)
{
    DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE  From VwCieBankAcc");
    ddlBanAcc.DataTextField = "CONCATE";
    ddlBanAcc.DataSource = dtbankaccount;

    ddlBanAcc.DataBind();
}

如果出于任何其他原因,即使您选择了DataBind并需要更改DropDownList的内容,也可以使用Request.Form始终获取回发值,如下所示:

Request.Form[DromDownListID.UniqueID]
    <asp:DropDownList ID="ddlBanAcc" runat="server" DataTextField="" DataValueField="">
    </asp:DropDownList>

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

您需要将AutoPostBack="true"添加到DropDownList才能使其回发。 我想这就是为什么代码没有执行的原因。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM