类型“Button”的控件“dgdDeduction__ctl2_btnNo”必须放在具有 runat=server 的窗体标记内。

解决方案 »

  1.   

    <form runat="server">这中间放代码</form>
      

  2.   

    你的窗体没有加runat="server" 的form,提示已经说清楚了
      

  3.   

    可是我都加了的
    不过那个btnNo是一个产生序号的模板列,在ItemDataBound里面写的产生序号的代码
    我把这列屏蔽掉就不出现这个错误了,不过什么也没有导出来,就是一个空页面,应该是会弹出一个保存文件的框的,就像大家通常下载的时候见到的那种窗口
    我改成C#的代码如下,不知道哪里有问题
    Response.ContentType = "application/vnd.ms-excel";

    //从Content-Type header中去除charset设置
    Response.Charset = "";
                
    //关闭 ViewState
    this.EnableViewState = false;System.IO.StringWriter tw = new System.IO.StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(tw);//获取control的HTML
    dgdDeduction.RenderControl(hw);
    //把HTML写回浏览器
    Response.Write(tw.ToString());
    Response.End();
      

  4.   

    <body><form runat=server>
    .....Your Code and Html
    </form></body>
      

  5.   

    还是不行,又出现类似问题,是不是因为我的DataGrid都是模板列,所以这样导出不行呀?
      

  6.   

    今天我也遇到这种情况了,不过我是动态加载控件,如果是HTML控件倒没问题,但取不到值,如果是服务器端控件的话就出现你说的那错误,我也正在想办法处理,关注此贴,如果我想到了,就上来回贴。。