【问题标题】:DropDownList value is empty when postback回发时 DropDownList 值为空
【发布时间】:2016-05-13 06:49:00
【问题描述】:

Page_Load 事件中,我从 db 加载数据并将其绑定到 DropDownList

在开始从数据库加载数据之前,我添加了默认值:

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

循环中:

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

而且效果很好。

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

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

【问题讨论】:

  • 你在使用更新面板吗?
  • @AhsanAzizAbbasi nope,我没有在页面加载时使用更新下拉绑定
  • 在绑定下拉列表时,您检查了 IsPostBack 属性??
  • 是的,或者您正在使用的任何回发事件,例如按钮事件.....我编写了一个代码来稳定您在回发时的视图
  • 但是在索引更改时重新绑定每次都会刷新列表,您不会选择任何项目...

标签: c# asp.net drop-down-menu


【解决方案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;

  }

【讨论】:

    【解决方案2】:
    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>
    

    【讨论】:

      【解决方案3】:

      可能还有另一个问题导致这个问题是enableviewstate property .. 如果此值设置为 false,并且我们在回发时从 db 检索特定的下拉列表列表项,则状态可能会丢失,因为属性值为 false。

      触发此问题时的常见错误可能是我们手动将enableviewstate 在后端设置为 false 而在视图中设置为 true ,因此请仔细检查此属性。

      【讨论】:

        【解决方案4】:

        首先在您的下拉列表中设置AppendDataBoundItems="true"

        在开始从数据库加载数据时,您应该将默认值更改为

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

        它将在索引 0 处添加项目。这将是您的默认选择。那么您可以根据需要更改 SelectedIndex,它将保留该值而不是 0。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-27
          • 1970-01-01
          • 2019-01-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多