【问题标题】:asp.net Row Count VB.NETasp.net 行计数 VB.NET
【发布时间】:2016-04-27 15:40:30
【问题描述】:

所以我想在使用下拉列表过滤后计算当前在 gridview 中可以看到的项目的行数。

如果我选择一个新项目,它会显示我之前选择的值的计数

例如,我在 DDL 中选择了 Beamer,其中包含 4 个项目,但在此之前我选择了 Copier,其中一个包含 8 个项目,在选择 Beamer 后,我的标签将显示来自复印机的 8,依此类推。

我的代码:

Protected Sub ddlType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlType.TextChanged

    Dim intAantal As Integer = gvRapportObjecten.Rows.Count
    lblAantal.Text = "Het aantal items is: " & intAantal.ToString

Picture

<asp:SqlDataSource ID="GridDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:LPIProjectConnection %>"
SelectCommand="SELECT object.id, object.label, object.object_type, object_type.name FROM object_type LEFT JOIN [object] ON object_type.id = object.object_type" FilterExpression="name  = '{0}'">
<FilterParameters>
    <asp:ControlParameter Name="name" ControlID="ddlType" PropertyName="SelectedValue" />
</FilterParameters>

【问题讨论】:

  • 错误是什么?
  • 我没有收到错误,只是我需要显示 5 而不是之前选择的 11
  • 网格中的数据何时更改?
  • 我的意思是你绑定了数据,还是你手动修改?
  • 我绑定了数据,在下拉列表中选择新值后,gridview 会更改数据

标签: asp.net vb.net


【解决方案1】:

我认为问题在于ddlType_SelectedIndexChanged 事件上的代码在您的数据过滤器之前执行,因此您更改了 ddl 上的值,它会计算您的网格视图上的当前行数,然后更新网格视图。 您需要在 Gridview DataBind() 之后移动代码

【讨论】:

  • 为了确保 GridView 已经更新,这段代码可以在 PreRender 事件中。
  • 感谢 ConnorsFan,PreRender 帮我搞定了!
【解决方案2】:

查看here网格视图的所有事件

我看到你使用了selectedindexchanged 事件。此事件在加载网格后发生。您应该使用 selectedindexchanging 事件,而不是在加载网格之前触发该事件。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 2016-03-17
    • 2011-01-04
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多