繁体   English   中英

下拉列表项计数正常

[英]Drop down list items count is working

我有一个下拉列表,其中具有硬编码的第一项,其他均由sql数据源绑定。 现在,在C#代码上,我希望此下拉列表的项始终计数为1(第一个硬编码列表项)。 而此下拉列表正确显示了浏览器上的所有列表项。 我无法理解确切的问题。

<asp:DropDownList ID="ddlGroup" runat="server" DataSourceID="dsGroupListByUserId"
     Width="100px" DataTextField="GroupName" DataValueField="GroupID" AppendDataBoundItems="True">
    <asp:ListItem Value="0">N/A</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsGroupListByUserId" runat="server" ConnectionString="<%$ ConnectionStrings:EMSsql %>" SelectCommand="GetGroup_ByEventID" SelectCommandType="StoredProcedure" >
    <SelectParameters>
        <asp:SessionParameter DefaultValue="0" Name="EventID" SessionField="EventID" Type="Int64" />
    </SelectParameters>
</asp:SqlDataSource>

这就是我试图获取项目数的方式-

int ItemsCount = ddlGroup.Items.Count;

将您的数据绑定放在!Page.IsPostBack中。

每当页面回发时,所有内容都会刷新,这就是为什么您的计数为1的原因,因为它是唯一的客户端列表项。 任何填充的服务器端都需要保留在一个不回发的位置。

If (!Page.IsPostBack)
{
ddlGroup.DataBind();
}

我认为这是因为您没有在page_Load使用Page.IsPostBack属性。

使用IsPostBack像Page_load

private void Page_Load()
{
    if (!IsPostBack)
    {
         // Bind your dropdown.
    }
}

希望对你有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM