2008-09-16 14 views
5

Tôi đang sử dụng .NET Forms Forms DataGridView và tôi cần chỉnh sửa cột DataBound (liên kết trên cột DataTable boolean). Đối với điều này tôi chỉ định mẫu ô như sau:DataGridView cột loại DataGridViewCheckBoxCell liên tục chỉ đọc/vô hiệu hóa

DataGridViewColumn column = new DataGridViewColumn (new DataGridViewCheckBoxCell());

Bạn thấy rằng tôi cần mẫu ô CheckBox.

Sự cố tôi gặp phải là cột này liên tục bị đọc/vô hiệu hóa, như thể nó thuộc loại TextBox. Nó không hiển thị một hộp kiểm nào cả.

Bất kỳ suy nghĩ nào về cách làm việc với cột hộp kiểm có thể chỉnh sửa cho DataGridView?

Cập nhật: Đối với các mẫu cửa sổ, vui lòng.

Cảm ơn.

Trả lời

0

Tạo một TemplateField và ràng buộc id với nó, một cái gì đó như thế này:

<asp:TemplateField HeaderText="Whatever" SortExpression="fieldname" ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <asp:CheckBox runat="server" ID="rowCheck" key='<%# Eval("id") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

Tôi quên chỉ định rằng tôi cần câu trả lời cho Windows Biểu mẫu. Cảm ơn. –

+0

Xin lỗi, tôi đã bỏ lỡ điểm đó. – Biri

1

Thay vì cố gắng để tạo ra các cột trong mã, nhấp vào mũi tên nhỏ bé trong một hộp ở phía trên cùng bên phải của DataGridView kiểm soát và chọn "Chỉnh sửa cột ..." từ trình đơn xuất hiện. Trong hộp thoại, nhấp vào nút Thêm, sau đó chọn tùy chọn "Cột dữ liệu" và chọn cột boolean bạn đang ràng buộc.

+0

Có, đó sẽ là một giải pháp, có thể, nhưng trong trường hợp của tôi, các cột được thêm vào theo chương trình. –

6

Vâng, sau hơn 4 giờ gỡ lỗi, tôi thấy rằng chiều cao hàng DataGridView quá nhỏ để hộp kiểm được vẽ, vì vậy nó không được hiển thị chút nào. Tôi đã tìm thấy điều này sau khi thay đổi kích thước chiều cao hàng ngẫu nhiên.

Là giải pháp, bạn có thể đặt AutoSizeRowsMode thành AllCells.

richDataGrid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;

+0

vui lòng đánh dấu câu trả lời của bạn là đã được chấp nhận. – JPReddy

Các vấn đề liên quan