[英]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">
</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.