【问题标题】:VB.net BoundField To CheckboxVB.net BoundField 到复选框
【发布时间】:2014-08-06 21:03:28
【问题描述】:

首先感谢您的阅读=)

我这里有个情况,我需要用sql查询创建一个动态datagridview。

例如:

我有一个名为 permissions 的表和另一个名为 user_permissions 的表。

所以我需要以这种方式显示一个datagridview:复选框显然代表是否有权限

用户 Perm1 Perm2 ... Perm n
加斯顿(复选框)(复选框)(复选框)
佩佩(复选框)(复选框)(复选框)

所以我认为我需要一个动态数据网格......到目前为止我所做的是:

进行查询以获取所有权限并创建一个将这些行添加为列的数据表,因此我可以使用名称和 scroll-x 适当地创建数据网格的列(有这么多,一个case语句不适合这个)

但是当我尝试为每个用户在每行的每一列中创建一个复选框时出现问题,我不知道如何:

For Each row As DataRow In dt_strSql.Rows
 index = row("sis_codigo").ToString.Trim + row("prf_id").ToString.Trim
 dt_aux.Columns.Add(index)
Next

dt_aux.Rows.Add()
For Each column As DataColumn In dt_aux.Columns
  dt_aux.Rows(0)(column.ColumnName) = True
Next

dt_aux.AcceptChanges()

a1c_permisos_dinamico.DataSource = dt_aux
a1c_permisos_dinamico.DataBind()

For Each row As GridViewRow In Me.a1c_permisos_dinamico.Rows
  For Each column As DataColumn In dt_aux.Columns
    'here i need to transform the value  "true" that i hardcoded above (just a test)      'into a chebox checked in each column of each row for each user
  Next
Next

【问题讨论】:

  • 我需要类似的东西; Dim check As Checkbox row.type = check 或者在乞求时将每行的每一列创建为复选框,但我也不知道该怎么做
  • 您是否在线显示它们,例如在 aspx 页面上?
  • 是的,我正好在一个 aspx 页面中。现在我有 Perm 1 Perm 2 Perm3 True True True... 我需要将其转换为 Perm1 Perm2 Checbox 复选框..

标签: sql vb.net checkbox


【解决方案1】:

在html中你可以设置一个模板复选框字段:

<asp:GridView ID="yourGrid" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate >
                <asp:CheckBox runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

您可以在单击复选框时添加类或回发命令。如果要填充权限(查询时是否检查每一行),则需要有一个权限字段(如 y/n 或布尔值)。您可以在创建每一行时在绑定时“切换”该框:

Protected Sub yourGridBind(ByVal sender As Object, ByVal e As GridViewRowEventArgs)


      Dim chk As CheckBox = DirectCast(e.Row.FindControl("chkSelect"), CheckBox)
       If e.Row.Cells(1).Text ="y" Then
        chk.Enabled = True
       Else
      chk.Enabled = False
      End If

End Sub

这里假设第二个字段是存储权限的y/n字段

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2010-09-28
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多