我正在尝试在aspx中使用jquery ui主题(选项卡)。$(函数(){$('#tabs').tabs();});
<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;
这是因为缺少一个div结束标记。把</div>
放在</form>
之前,它应该可以工作。
谷歌搜索得到的结果是,只需覆盖Page.VerifyRenderingInServerForm方法,如下所示:
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
就是这样。你将不会犯那个错误。。。