vin*_*ini 1 c# asp.net c#-4.0 drop-down-menu
ddlBanAcc.Items.Insert(0, new ListItem("", ""));
string s = ddlBanAcc.SelectedValue;
string[] words = s.Split('|');
if (ddlBanAcc.SelectedIndex > 1)
{
query += "'and DtaLineAccountToDebit='" + words[0] + "'";
}
Run Code Online (Sandbox Code Playgroud)
在ddlBankAcc(下拉列表选择)中,我填充了更新面板中的Datagrid
但是,代码未执行,此语句未选择任何值 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>
Run Code Online (Sandbox Code Playgroud)
编辑:我如何在ddlBanAcc中添加数据
DataTable dtbankaccount = oDBAccess.getDataTable("SELECT BkiAccountNb + ' | ' + BkiCurrency+ ' | ' +BkiAccountNb AS CONCATE From VwCieBankAcc");
ddlBanAcc.DataTextField = "CONCATE";
ddlBanAcc.DataSource = dtbankaccount;
ddlBanAcc.DataBind();
Run Code Online (Sandbox Code Playgroud)
您需要检查IsPostBack,如果它不是DataBind,因为这会使DropDownList重新获取所有值,并丢失选择.
if(!IsPostBack)
ddlBanAcc.DataBind();
Run Code Online (Sandbox Code Playgroud)
特别是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();
}
Run Code Online (Sandbox Code Playgroud)
如果由于任何其他原因,您需要创建DataBind并更改DropDownList的内容,即使在他的选择之后,您仍然可以使用Request.Formas 来获取回发值:
Request.Form[DromDownListID.UniqueID]
Run Code Online (Sandbox Code Playgroud)