2012-10-11 155 views
1
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这是更新面板下拉列表中不选择值asp.net

在然而代码不执行并没有值被得到通过该选择声明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(); 
+0

从HTML部分粘贴更多代码以便我们可以寻求解决方案............ –

+0

您是否在ddlBanAcc中选择了一个项目? 如果你不s.Split会失败。 – abhishek

+0

是的,我确实选择了ddlBanAcc中的一个项目 – vini

回答

9

您需要检查IsPostBack,并且如果它不生成DataBind,因为这会使DropDownList重新获取所有值,并且会丢失选择。 。

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

    ddlBanAcc.DataBind(); 
} 

如果任何其他:

if(!IsPostBack) 
    ddlBanAcc.DataBind(); 
上DropDownList的是不断的ViewState他的价值观,你需要使用的IsPostBack到满的过程也就是填写并最终代码会

贝斯原因,你需要做的DataBind,甚至他的选择后更改的DropDownList的内容,您可以使用总是得到后回值Request.Form为:

Request.Form[DromDownListID.UniqueID] 
+1

完成:)............ – vini

3
<asp:DropDownList ID="ddlBanAcc" runat="server" DataTextField="" DataValueField=""> 
    </asp:DropDownList> 

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

+0

给你各自的DataTextField和DataValueField –

+0

检查我的编辑我已经有这些字段 – vini

+0

是看过尝试给DataValueField也 –

1

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

+0

还没有得到任何值 – vini

0

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