最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Asp.net中的GridView導(dǎo)出遇到的兩個問題和解決方法

 更新時間:2009年12月28日 00:28:28   作者:  
Asp.net下GridView導(dǎo)出遇到的兩個問題與解決方法,需要的朋友可以參考一下。
對于GridView導(dǎo)出的內(nèi)容的代碼大致如下:
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.grid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
//grid1為表格的ID

注:藍(lán)色標(biāo)識代碼為出錯的那行代碼。
OK,好不容易敲完代碼,運行程序測試。蹬,報錯了。
問題一:類型“Grid1”的控件“gvCompareDetail”必須放在具有 runat=server 的窗體標(biāo)記內(nèi)。
注:Grid1為表格的ID。

查找網(wǎng)上的解決大致為:
1)把Grid放到<form runat="server"></form>間。
2)給Grid加標(biāo)記runat="server"。
查明前臺Grid確實有加標(biāo)記runat="server"的,而且表格是放在form中的。
解決方法:在后臺代碼加上以下重寫方法
public override void VerifyRenderingInServerForm(Control control)
{ }
查找MSDN說明,該函數(shù)的作用在于:確認(rèn)在運行時為指定的 ASP.NET 移動控件呈現(xiàn) Form 控件。
語法:
C#
復(fù)制代碼 代碼如下:

public override void VerifyRenderingInServerForm(
    Control control
)

參數(shù)
control
類型:System.Web.UI..::.Control
必須位于 Form 控件中的 ASP.NET 移動控件。
備注
如果在運行時控件未包含在 Form 中,則此方法將重寫 Page..::.VerifyRenderingInServerForm 方法以引發(fā)異常。
如果回發(fā)或使用客戶端腳本的服務(wù)器控件沒有包含在 HtmlForm 服務(wù)器控件 (<form runat="server">) 標(biāo)記中,它們將無法正常工作。這些控件可以在呈現(xiàn)時調(diào)用該方法,以在它們沒有包含在 HtmlForm 控件中時提供明確的錯誤信息。
開發(fā)自定義服務(wù)器控件時,通常在為任何類型的輸入標(biāo)記重寫 Render 方法時調(diào)用該方法。這在輸入控件調(diào)用 GetPostBackEventReference 或發(fā)出客戶端腳本時尤其重要。復(fù)合服務(wù)器控件不需要作出此調(diào)用。
OK,加上以上的函數(shù),編譯運行調(diào)試。暈,又出現(xiàn)了別外一個錯誤。

問題二:只能在執(zhí)行 Render() 的過程中調(diào)用 RegisterForEventValidation。

看樣子,以上加的那個函數(shù)并沒有徹底解決問題了。
經(jīng)過一番搜索和嘗試,終于把問題解決了。

解決方法1:把上面的函數(shù)VerifyRenderingInServerForm去掉,在導(dǎo)出代碼中,動態(tài)添加一個Form對象,一個Page對象,把表格加入它,并把Form添加給Page。
導(dǎo)出的代碼如下:
復(fù)制代碼 代碼如下:

Page p=new Page();
HtmlForm form=new HtmlForm();
Grid1.EnableViewState = false;
p.EnableEventValidation = false;
p.DesignerInitialize();
form.Controls.Add(Grid1);
p.Controls.Add(form);
StringBuilder sb=new StringBuilder();
StringWriter sw=new StringWriter(sb);
p.RenderControl(sw);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

解決方法2:修改web.config(不推薦)<pages enableEventValidation ="false" ></pages>

相關(guān)文章

  • CefSharp v62修改方法(支持.net4.0)

    CefSharp v62修改方法(支持.net4.0)

    下面小編就為大家分享一篇CefSharp v62修改方法(支持.net4.0),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • ASP.NET?Core記錄日志

    ASP.NET?Core記錄日志

    這篇文章介紹了ASP.NET?Core記錄日志的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • jsp和asp.net共享session值示例代碼

    jsp和asp.net共享session值示例代碼

    介紹ASP.NET中登錄后,JSP可以用ASP.Net中的Session值,大家參考使用吧
    2013-12-12
  • asp.net下生成英文字符數(shù)字驗證碼的代碼

    asp.net下生成英文字符數(shù)字驗證碼的代碼

    用了asp.net隨機(jī)數(shù),獲取指定位數(shù)的字母或數(shù)字以后,進(jìn)行圖片輸出的驗證碼函數(shù)。
    2009-12-12
  • C#各種集合操作的性能總結(jié)

    C#各種集合操作的性能總結(jié)

    本文主要記錄的是C#各種集合操作的性能,下面的標(biāo)記說明描述標(biāo)記的時間,下面的表格對比各種集合各種操作的時間,需要了解的朋友可以參考下
    2012-12-12
  • 客戶端用JavaScript填充DropDownList控件 服務(wù)器端讀不到值

    客戶端用JavaScript填充DropDownList控件 服務(wù)器端讀不到值

    今天遇到一個奇怪的問題,某一頁面需要使用三級級聯(lián)下拉列表框。為提高用戶體驗,采用jQuery的cascadingDropDown插件調(diào)用后臺Web Services來實現(xiàn)ajax填充。
    2010-09-09
  • .net數(shù)據(jù)庫連接池配置技巧(默認(rèn)值)

    .net數(shù)據(jù)庫連接池配置技巧(默認(rèn)值)

    ado.net 本就有連接功能,所有.net開法基本不用去考慮連接問題,怪不得.net的連接池資料網(wǎng)上找不到。.net連接池只要在連接字符串里配制就可以了
    2008-12-12
  • .NET中創(chuàng)建對象的幾種方式和對比

    .NET中創(chuàng)建對象的幾種方式和對比

    在 .net 中,創(chuàng)建一個對象最簡單的方法是直接使用 new (), 在實際的項目中可能還會用到反射,本文就介紹了幾種創(chuàng)建方法,感興趣的可以了解一下
    2021-07-07
  • ASP.NET堆和棧一之基本概念和值類型內(nèi)存分配

    ASP.NET堆和棧一之基本概念和值類型內(nèi)存分配

    這篇文章介紹了ASP.NET堆和棧的基本概念和值類型內(nèi)存分配,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • ASP.Net項目中實現(xiàn)微信APP支付功能

    ASP.Net項目中實現(xiàn)微信APP支付功能

    這篇文章介紹了ASP.Net項目中實現(xiàn)微信APP支付功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論

时尚| 敦煌市| 德令哈市| 鹤壁市| 富阳市| 江安县| 平谷区| 翼城县| 扎赉特旗| 桐柏县| 元氏县| 朝阳区| 临清市| 隆昌县| 新龙县| 武鸣县| 平顶山市| 麻城市| 密山市| 霸州市| 白玉县| 贺州市| 扎赉特旗| 巩留县| 玉林市| 阳谷县| 河津市| 长宁县| 阿城市| 区。| 赤水市| 苏尼特左旗| 伽师县| 十堰市| 高尔夫| 嘉祥县| 类乌齐县| 柳河县| 湘潭县| 新营市| 丽水市|