簡體   English   中英

VB.net BoundField到復選框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM