我正在尝试在aspx中使用jquery ui主题(制表符)。 $(function(){ $( '#标签')选项卡()。 });
<form id="form1" runat="server">
<div id="tabs">
<ul>
<li><a href="#tabs-1">tab 1</a></li>
<li><a href="#tabs-2">tab s2</a></li>
<li><a href="#tabs-3">tab 3</a></li>
</ul>
<div id="tabs-1">
tab-1
</div>
<div id="tabs-2">
tab-2
</div>
<div id="tabs-3">
Gridview is here
<asp:Button ID="Button2" runat="server" Height="31px" Text="Button"
onclick="Button2_Click" />
</div>
</div>
</form>
现在我调用一个函数button2_click在Gridview上做一些操作,但是我收到了错误 必须将带有'GridView'类型的控件'GridView1'放在带有runat = server
的表单标签内protected void Button2_Click(object sender, EventArgs e)
{
ExportToExcel(GridView1, "HElloWorld");
}
private void ExportToExcel(GridView gv, string filename)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gv.RenderControl(hw);
string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
//Response.Write(GetMessage());
Response.Output.Write(sw.ToString());
// Response.Write(GetFooter());
Response.Flush();
Response.End();
}
错误来自gv.RenderControl(hw);
答案 0 :(得分:1)
那是因为你缺少一个div结束标记。将</div>
放在</form>
之前,它应该有效。
谷歌搜索得到了我,只需覆盖方法Page.VerifyRenderingInServerForm方法,如下所示:
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
n就是这样。你将免于那个错误......