我整个上午一直在尝试这个,没有结果.我似乎无法弄清楚我做错了什么.我已经检查了两个链接(在许多其他无用的链接中)并且尚未解决我的问题.这是一个WebUserControl ......
收到以下错误:控件'TextBox'类型的'HeadContent_CareersViewPosting_txtFirstName'必须放在带有runat = server的表单标记内.
已经尝试过这里的建议,这里和这里都没有结果.仍然收到完全相同的消息.一些新的建议将不胜感激!
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Careers View Posting.ascx.cs" Inherits="ascxStagingApplication.Careers.Careers_View_Posting" %>
<asp:Panel ID="pnlResume" runat="server">
<table ID="tblMain" runat="server">
<tr>
<td>
<asp:Label ID="lblFirstName" runat="server" Text="* First Name"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblLastName" runat="server" Text="* Last Name"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblEmail" runat="server" Text="* Email"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblResume" runat="server" Text="* Resume"></asp:Label>
</td>
<td> …Run Code Online (Sandbox Code Playgroud) 我问过如何呈现UserControl的HTML并让代码适用于动态生成的UserControl.
现在我正在尝试使用LoadControl来加载以前生成的Control并吐出它的HTML,但它给了我这个:
必须将带有'TextBox'类型的控件放在带有runat = server的表单标记内.
我实际上并没有将控件添加到页面中,我只是想抓取它的HTML.有任何想法吗?
这是我正在玩的一些代码:
TextWriter myTextWriter = new StringWriter();
HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter);
UserControl myControl = (UserControl)LoadControl("newUserControl.ascx");
myControl.RenderControl(myWriter);
return myTextWriter.ToString();
Run Code Online (Sandbox Code Playgroud) 我的DataGridVew有问题
我正在尝试从我的数据库导出数据到excel fie
这是一个小页面,其中只有数据网格视图和按钮导出如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="SID" DataSourceID="SqlDataSource1" EnableModelValidation="True">
<Columns>
<asp:BoundField DataField="SID" HeaderText="SID" InsertVisible="False"
ReadOnly="True" SortExpression="SID" />
<asp:BoundField DataField="G1Q1" HeaderText="G1Q1" SortExpression="G1Q1" />
<asp:BoundField DataField="G1Q2" HeaderText="G1Q2" SortExpression="G1Q2" />
<asp:BoundField DataField="G1Q3" HeaderText="G1Q3" SortExpression="G1Q3" />
<asp:BoundField DataField="G1Q4" HeaderText="G1Q4" SortExpression="G1Q4" />
<asp:BoundField DataField="G1Q5" HeaderText="G1Q5" SortExpression="G1Q5" />
<asp:BoundField DataField="G1Q6" HeaderText="G1Q6" SortExpression="G1Q6" />
<asp:BoundField DataField="G1Q7" HeaderText="G1Q7" SortExpression="G1Q7" />
<asp:BoundField DataField="G1Q8" HeaderText="G1Q8" SortExpression="G1Q8" />
<asp:BoundField DataField="G1Q9" HeaderText="G1Q9" SortExpression="G1Q9" />
<asp:BoundField DataField="G1Q10" HeaderText="G1Q10" SortExpression="G1Q10" />
<asp:BoundField …Run Code Online (Sandbox Code Playgroud) TextWriter tr = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(tr);
HtmlForm form = new HtmlForm();
form.Controls.Add(divQueryDescription);
divQueryDescription.RenderControl(writer);
<div runat="server" id="divQueryDescription">
<asp:GridView runat="server" id="grv"></asp:GridView>
</div>
Run Code Online (Sandbox Code Playgroud)
我的GridView在DIV中,我将DIV添加到HtmlForm中,以便我可以将其渲染为字符串.但是我收到以下错误: -
Gridview'grv'必须放在带有runat = server的表单标签内,尽管我的Gridview已经在表单中,因为我将DIV添加到表单中.
如何将此DIV渲染为字符串?
我使用波纹管代码导出gridview数据excel但问题是整个页面导出到excel.我只想要gridview数据而不是整页导出.怎么能解决这个问题?
HtmlForm form = new HtmlForm();
Response.Clear();
Response.Buffer = true;
string filename = "GridViewExport_" + DateTime.Now.ToString() + ".xls";
Response.AddHeader("content-disposition", "attachment;filename=" + filename);
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gdvInBox.AllowPaging = false;
gdvInBox.DataBind();
form.Controls.Add(gdvInBox);
this.Controls.Add(form);
form.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我是.net的新手,我使用以下代码从gridview转移到excel:
protected void toexcelbutton_Click(object sender, EventArgs e)
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "attendancedatereport.xls"));
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.AllowSorting = false;
GridView1.DataBind();
HtmlForm htmfrm = new HtmlForm();
GridView1.Parent.Controls.Add(htmfrm);
htmfrm.Attributes["runat"] = "server";
htmfrm.Controls.Add(GridView1);
htmfrm.RenderControl(htw);
Response.Write(sw.ToString());
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我得到一个例外:
mscorlib.dll中发生了'System.Threading.ThreadAbortException'类型的第一次机会异常.
但是,当我在另一个页面中为另一个gridview运行相同的代码时,它运行得很好.我尝试添加
EnableEventValidation="false"
Run Code Online (Sandbox Code Playgroud)
到aspx页面,和
<pre lang="cs">public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}</pre>
Run Code Online (Sandbox Code Playgroud)
到aspx.cs页面,
我尝试清除临时文件,仍然我得到相同的错误,超过5小时我试过,没有什么工作.
然后我尝试选择Debug - > Exceptions菜单项,并在出现的对话框中选中"Common Language …