好吧,這就是情況。將Gridview內容導出爲excel形式runat =服務器錯誤,即使表單有runat =服務器
我有Gridview內容被導出到Excel工作表。基本上我有一個調用方法的按鈕(例如btnExcel_Clicked)。 C#代碼是背後這樣
protected void btnExcel_Click (object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + "test" + "_Registration_Forms.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Page.EnableViewState = false;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
clientGridView.RenderControl(htmlWrite); //this is the name of my gridview
Response.Write(stringWrite.ToString());
Response.End();
}
當按鈕火災,它然後顯示該錯誤:
「System.Web.HttpException:類型的控制‘clientGridView’‘的GridView’必須被放在裏面runat = server的表單標籤。「
表明下面的代碼是哪裏出現了錯誤:
Line 217: clientGridView.RenderControl(htmlWrite);
爲什麼會變成這樣,如果我的形式確實有RUNAT =「服務器」裏呢?
我懷疑它可能是我如何使用頁面的結果,GridView包裝在更新面板(不知道這是否會導致任何問題?),我有一些JavaScript在頁面的頂部允許頁面刷新每個搜索查詢。它看起來像這樣:
<script type="text/javascript">
function RefreshUpdatePanel() {
__doPostBack('<%= txtClientName.ClientID %>', '');
$('#totals').fadeIn('slow');
$('#clientGrid').fadeIn('slow');
$('#btnReport').fadeIn('slow');
};
</script>
這基本上只是激發我的更新面板每次我輸入一個值txtClientName
我不知道如何任何這將導致這樣的錯誤。如果有人能夠闡明這一點,或者指引我朝着正確的方向發展,我會非常感激。這是因爲我的gridview被放置在更新面板中? arghhhh ..
在此先感謝!
編輯:確定第一個問題解決了......但出現了一個新問題。
通過將該代碼在我後面的代碼:
public override void VerifyRenderingInServerForm (System.Web.UI.Control control)
{
//confirms that an HtmlForm control is rendered for the
//specified ASP.NET server control at run time.
}
能讓我過去的錯誤,但是一個新的錯誤出現了:
System.InvalidOperationException: RegisterForEventValidation can only be called during Render();
呸。
編輯2: 好的問題大多解決了。通過在@ Page部分中輸入EnableEventValidation =「false」,此功能可以正常工作。然而,現在這是不安全的有沒有辦法解決這個問題?
編輯3: 此外,有沒有一種方法可以實現這一點,而不會丟失在Microsoft Excel中的單元格邊框?
我不是很懂行的這個(綁定到數據集)。我有一個網格視圖,它需要一個sqldatasource並使用它來填充gridview中的單元格。我不必以任何方式創建數據集,並且在查看此示例時,我不確定'dt'的來源。我假設city.getAllCity()是一個自定義的方法。我不知道如何解決這個問題。然而,如果你不介意去掉一些光線,我完全不會介意瞭解這個過程以及這裏實際發生的事情。 – zillaofthegods
數據集生成的更新示例# – Richard
非常好!感謝您的指導。我可以將我的sqldatasource插入SqlDataAdapter嗎?我根據用戶輸入的內容生成大量查詢,因此我無法僅使用靜態SQL查詢/非查詢。 – zillaofthegods