以编程方式将复选框控件添加到gridview的标题 [英] Add checkbox control to header of the gridview programmatically

查看:66
本文介绍了以编程方式将复选框控件添加到gridview的标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个webform,它将excel文件导入gridview。现在我想为每个标题添加复选框控件(以及标题文本)。



下面是我 1的代码。导入Excel数据。 2.将其存储到数据表中3.动态创建gridview 4.将数据绑定到gridview中。





< pre lang =vb> 受保护的 Sub btnUpload_Click(发件人正如 对象,e As EventArgs)
如果 FileUpload1.HasFile 然后
Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
Dim 扩展名作为 字符串 = Path.GetExtension(FileUpload1.PostedFile.FileName)
Dim FolderPath 作为 String = ConfigurationManager.AppSettings( FolderPath

Dim FilePath 作为 字符串 =服务器.MapPath(FolderPath + FileName)
FileUpload1.SaveAs(FilePath)
Import_To_Grid(FilePath,Extension,rbHDR.Se​​lectedItem.Text)
End 如果
结束 Sub

私有 Sub Import_To_Grid( ByVal FilePath 作为 字符串 ByVal 扩展作为 字符串 ByVal isHDR 作为 字符串
Dim conStr 作为 字符串 =
选择 案例扩展名
案例 。xls

conStr = ConfigurationManager.ConnectionStrings( Excel03ConString)。ConnectionString
退出 选择
案例 。xlsx

conStr = ConfigurationManager.ConnectionStrings(
Excel07ConString)。ConnectionString
退出 选择
结束 选择
conStr = 字符串 .Format(conStr,FilePath,isHDR)

Dim connExcel 作为 OleDbConnection(conStr)
Dim cmdExcel 作为 OleDbCommand()
Dim oda As OleDbDataAdapter()
Dim dt 作为 DataTable()

cmdExcel.Connection = connExcel


connExcel.Open()
Dim dtExcelSchema As DataTable
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing
Dim SheetName 作为 字符串 = dtExcelSchema.Rows( 0 )( TABLE_NAME)。ToString()
connExcel.Close()


connExcel.Open()
cmdExcel.CommandText = SELECT *来自[& SheetName& ]
oda.SelectCommand = cmdExcel
oda.Fill(dt)
connExcel.Close()


Dim GridView1 As GridView = GridView
GridView1.AutoGenerateColumns = False
对于 i 作为 整数 = 0 dt.Columns.Count - 1
< span class =code-keyword> Dim boundfield As BoundField = BoundField

boundfield.DataField = dt.Columns(i).ColumnName.ToString()
boundfield.HeaderText = dt.Columns(i).ColumnName.ToString()

GridView1.Col umns.Add(boundfield)
下一步


GridView1.DataSource = dt
GridView1.DataBind( )
Panel1.Controls.Add(GridView1)
结束 Sub







一切正常。但是当我在标题文本中添加复选框时,我完全是空白的。请建议我可以使用的解决方案或任何其他方法。

解决方案

Rectangle rect = dataGridView1.GetCellDisplayRectangle(0,-1,true);

rect.Y = 3;

rect.X = rect.Location.X +(rect.Width / 4);

CheckBox checkboxHeader = new CheckBox();

checkboxHeader.Name =checkboxHeader;

// datagridview [0,0] .ToolTipText =sdfsdf;

checkboxHeader.Size = new Size(18,18);

checkboxHeader.Location = rect.Location;

checkboxHeader.CheckedChanged + = new EventHandler(checkboxHeader_CheckedChanged);

dataGridView1.Controls.Add(checkboxHeader);



绑定数据网格时调用此方法,上面的代码将其添加为控件


I have created a webform which imports the excel file into gridview. Now I want to add checkbox control to each header (along with the header text).

Below is the code where I am 1. Importing the excel data. 2. Store it into a datatable 3. Creating gridview dynamically 4. Binding the data into the gridview.


Protected Sub btnUpload_Click(sender As Object, e As EventArgs)
    If FileUpload1.HasFile Then
        Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
        Dim Extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)
        Dim FolderPath As String = ConfigurationManager.AppSettings("FolderPath")

        Dim FilePath As String = Server.MapPath(FolderPath + FileName)
        FileUpload1.SaveAs(FilePath)
        Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text)
    End If
End Sub

    Private Sub Import_To_Grid(ByVal FilePath As String, ByVal Extension As String, ByVal isHDR As String)
    Dim conStr As String = ""
    Select Case Extension
        Case ".xls"

            conStr = ConfigurationManager.ConnectionStrings("Excel03ConString").ConnectionString
            Exit Select
        Case ".xlsx"

            conStr = ConfigurationManager.ConnectionStrings("Excel07ConString").ConnectionString
            Exit Select
    End Select
    conStr = String.Format(conStr, FilePath, isHDR)

    Dim connExcel As New OleDbConnection(conStr)
    Dim cmdExcel As New OleDbCommand()
    Dim oda As New OleDbDataAdapter()
    Dim dt As New DataTable()

    cmdExcel.Connection = connExcel


    connExcel.Open()
    Dim dtExcelSchema As DataTable
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
    Dim SheetName As String = dtExcelSchema.Rows(0)("TABLE_NAME").ToString()
    connExcel.Close()


    connExcel.Open()
    cmdExcel.CommandText = "SELECT * From [" & SheetName & "]"
    oda.SelectCommand = cmdExcel
    oda.Fill(dt)
    connExcel.Close()


    Dim GridView1 As GridView = New GridView
    GridView1.AutoGenerateColumns = False
    For i As Integer = 0 To dt.Columns.Count - 1
        Dim boundfield As BoundField = New BoundField

        boundfield.DataField = dt.Columns(i).ColumnName.ToString()
        boundfield.HeaderText = dt.Columns(i).ColumnName.ToString()

        GridView1.Columns.Add(boundfield)
    Next


    GridView1.DataSource = dt
    GridView1.DataBind()
    Panel1.Controls.Add(GridView1)
End Sub




All working fine. But when it comes to adding checkbox to header text, I am completely blank. Kindly suggest the solution or any other approach I can use.

解决方案

Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true);
rect.Y = 3;
rect.X = rect.Location.X + (rect.Width/4);
CheckBox checkboxHeader = new CheckBox();
checkboxHeader.Name = "checkboxHeader";
//datagridview[0, 0].ToolTipText = "sdfsdf";
checkboxHeader.Size = new Size(18, 18);
checkboxHeader.Location = rect.Location;
checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged);
dataGridView1.Controls.Add(checkboxHeader);

Call this method while binding the Data Grid, above code will add it as control


这篇关于以编程方式将复选框控件添加到gridview的标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆