[英]VB.net BoundField To Checkbox
首先感謝您閱讀=)
我在這里有一種情況,我需要使用sql查詢創建一個動態的datagridview。
例如:
我有一個名為權限的表,另一個名為user_permissions。
所以我需要以這種方式顯示一個datagridview:如果具有權限,復選框顯然表示
用戶Perm1 Perm2 ... Perm n
加斯頓(復選框)(復選框)(復選框)
Pepe(復選框)(復選框)(復選框)
所以我認為我需要一個動態的數據網格...我到目前為止所做的是:
進行查詢以獲取所有權限,並創建一個將這些行添加為列的數據表,以便我可以使用名稱和scroll-x來適當地創建datagrid的列(有太多的情況,對此不宜使用大小寫句子)
但是,當我嘗試為每個用戶的每一行的每一列創建一個checbox時,問題出現了,我不知道如何:
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
在html中,您可以設置模板復選框字段:
<asp:GridView ID="yourGrid" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate >
<asp:CheckBox runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
您可以為單擊復選框添加類或回發命令。 如果要填充權限(在查詢時是否選中每一行),則需要具有一個權限字段(例如y / n或boolean)。 創建每一行時,可以在綁定時“切換”該框:
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字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.