Jquery选项卡+aspx网格视图



我正在尝试在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; }

就是这样。你将不会犯那个错误。。。

最新更新