2016-05-13 52 views
0

Page_Load事件上,我将数据从db加载并绑定到DropDownList回发时DropDownList值为空

开始从数据库中的数据装载前,我加了默认值:

ddlDrop.Items.Add(new ListItem("All","All")); 
ddlDrop.SelectedIndex = 0; 

在循环:

ddldrop.Items.Add(new ListItem()); 

,它的工作完美。

问题是当我更改SelectedIndex时,它是回传的,但所选的DropDownList值为空。

ddlDrop.SelectedItem.Value - >返回空而不是选定的值。

+0

你使用更新面板吗? –

+0

@AhsanAzizAbbasi nope,即时通讯不使用更新页面加载时的下拉式绑定 – theinarasu

+0

当绑定下拉时,您检查了IsPostBack属性? –

回答

1

如果在页面加载中添加下面的代码。

ddlDrop.Items.Add(new ListItem("All","All")); 
ddlDrop.SelectedIndex = 0; 

它每次都会执行回发。因此您在每次回传时都设置了索引0,并且您的选择将丢失。只是把一个if条件

if(!IspostBack)// will prevent from executing on every postback 
    { 
     ddlDrop.Items.Add(new ListItem("All","All")); 
     ddlDrop.SelectedIndex = 0; 

    } 
+0

谢谢你的提示 – theinarasu

+0

告诉我,如果这项工作 –

+0

如果这个工作,请标记为答案 –

0
here is the sample  


<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <triggers> 
        <asp:AsyncPostBackTrigger ControlID="ddldropdown" /> 
      </triggers> 
     <ContentTemplate> 

    <asp:dropbdown ID="ddldropdown" etc...../> 

     </ContentTemplate> 
    </asp:UpdatePanel> 
+0

谢谢兄弟:) – theinarasu

0

的代码,并有可能是另一个问题,造成这个问题是enableviewstate属性.. 如果这个值设置为false,我们检索后找回状态可从数据库下拉列表特定时listItems因为房产价值为假。

触发这个问题时常见的错误可能是手动的,我们在后台设置enableviewstate为false,而在视图中为true,所以仔细检查这个属性。

0

首先在你的下拉

设置AppendDataBoundItems="true"在开始从数据库中的数据加载,默认值应更改为

ddlDrop.Items.Insert(0, new ListItem("All", "All")); 

将在指数0,这将是您的默认选择添加项目。那么你可以根据你的需要更改SelectedIndex,它将保持该值而不是0.