[英]Add checkbox control to header of the gridview programmatically
I have created a webform which imports the excel file into gridview. 我创建了一个将Excel文件导入gridview的Web表单。 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. 下面是我所在的代码1.导入Excel数据。 2. Store it into a datatable 3. Creating gridview dynamically 4. Binding the data into the gridview. 2.将其存储到数据表中。3.动态创建gridview。4.将数据绑定到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. 请提出解决方案或我可以使用的任何其他方法。
No Comments :( 没意见 :(
Anyway, I have done it myself. 无论如何,我自己做了。 It was pretty simple. 这很简单。 I was thinking too much. 我想得太多了。 Here's the code. 这是代码。
ASPX: ASPX:
<form id="form1" runat="server">
<div>
Import Excel File:
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload"
OnClick="btnUpload_Click" />
<br />
<asp:Label ID="Label1" runat="server" Text="Has Header ?" />
<asp:RadioButtonList ID="rbHDR" runat="server">
<asp:ListItem Text = "Yes" Value = "Yes" Selected = "True" >
</asp:ListItem>
<asp:ListItem Text = "No" Value = "No"></asp:ListItem>
</asp:RadioButtonList>
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
</div>
</form>
Codebehind: 代码背后:
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"
'Excel 97-03
conStr = ConfigurationManager.ConnectionStrings("Excel03ConString") _
.ConnectionString
Exit Select
Case ".xlsx"
'Excel 07
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()
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
Protected Sub GridView1_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowCreated
' Check the header type
If e.Row.RowType = DataControlRowType.Header Then
Dim litHeader As Literal
Dim txtSearch As CheckBox
' loop through each cell
For i As Integer = 0 To (e.Row.Cells.Count - 1)
litHeader = New Literal
txtSearch = New CheckBox
' get the current header text
litHeader.Text = e.Row.Cells(i).Text & " "
' add the header text plus a new textbox
e.Row.Cells(i).Controls.Add(txtSearch)
e.Row.Cells(i).Controls.Add(litHeader)
Next
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.