Следующий код работает (я думаю, что связывал DetailsView слишком рано. Программисты объясняют, если возможно, спасибо)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=ReportOutput.xls")
Response.Charset = ""
Response.ContentType = "application/vnd.ms-excel"
Dim tw As New System.IO.StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(tw)
hw.WriteLine("<h3>Output Form</h3>")
DetailsView1.DataSource = SqlDataSource1
DetailsView1.DataBind()
DetailsView1.RenderControl(hw)
Dim style As String = "<style> .textmode { mso-number-format:\@; } </style>"
Response.Write(style)
Response.Output.Write(tw.ToString())
Response.Flush()
Response.End()
end Sub
В моем DetailsView теперь я могу изменить цвет фона, размер и т. Д. Ячеек, например:
<asp:TemplateField HeaderStyle-BorderColor="LightGray" ItemStyle-BorderColor="LightGray" HeaderStyle-BackColor="LightGray" ItemStyle-BackColor="LightGray" HeaderText="Personal Details"></asp:TemplateField>
<asp:BoundField DataField="Title" HeaderText="Dependants" ItemStyle-HorizontalAlign="Right" SortExpression="Dependants" />
Я также могу изменить текст, цвет и т. Д. В своем коде, например:
Protected Sub DetailsView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.DataBound
If DetailsView1.Rows(12).Cells(1).Text = "False" Then
DetailsView1.Rows(12).Cells(1).Text = "This is false"
ElseIf DetailsView1.Rows(12).Cells(1).Text = "True" Then
DetailsView1.Rows(12).Cells(1).Text = "This is true"
End If
end sub