首先,感谢您的阅读=)
这里有一种情况,我需要创建一个带有sql查询的动态datagridview。
例如:
我有一个名为permissions的表和一个名为user_permissions的表。
因此,我需要以这种方式显示一个datagridview :复选框显然表示是否有权限
用户Perm1 Perm2 ...Perm n
Gaston (复选框)
Pepe (复选框)
所以我想我需要一个动态的数据网格。到目前为止,我所做的是:
执行一个查询以获取所有权限,并创建一个datatable,将这些行作为列添加,这样我就可以使用名称和scroll-x正确地创建datagrid的列(有太多,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发布于 2014-07-31 02:14:51
在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字段
https://stackoverflow.com/questions/25042992
复制相似问题