2010-08-05 108 views
1
Visual Studio 2008 
.Net 3.5 
C# 

我有一個網站,它有很多帶有網格視圖的頁面。我希望能夠在某些網格視圖上添加「導出到Excel」按鈕,因此我開始查找並找到自定義Web服務器控件 - 有關示例,請參閱this page如何在asp.net中爲gridview創建一個自定義web服務器控件

自定義標籤的這個例子可以讓你在字符串參數傳遞作爲輸入自定義的控制:

<aspSample:WelcomeLabel ID="WelcomeLabel1" 
    runat="server" Text="Welcome" DefaultUserName="Guest"> 
</aspSample:WelcomeLabel> 

我不完全知道如何開始。我在想,我創建了一個自定義Button控件,其中網格視圖的id可以作爲參數傳入 - 我只是不確定如何做到這一點,如果它甚至是可能的。

我不認爲我需要創建自定義網格視圖控件...或者,也許我通過查看自定義控件使它太複雜?

請注意:我寫要能夠網格視圖導出到Excel文件中的代碼,它工作正常。我需要關於如何使代碼更通用的幫助,所以我可以通過網格視圖將它放到我的ASP中,並讓網格視圖爲「可導出」。

在此先感謝您指點我正確的方向!

回答

1

如果我們採用所有按鈕調用相同的導出方法以確定要使用哪個gridview並將相應的數據源發送到Excel創建者的路徑,該怎麼辦?不知道它是否會被認爲是髒的,但它應該很容易,不涉及自定義控件。

例子:

比方說,我們命名我們所有的按鈕這樣的事情,所以我們可以提取出他們的父母的GridView現在

<asp:LinkButton ID="PeopleGridView_exportbutton" runat="server" onclick="excel_click" /> 
<asp:LinkButton ID="ShipmentsGridView_exportbutton" runat="server" onclick="excel_click" /> 
<asp:LinkButton ID="ProductsGridView_exportbutton" runat="server" onclick="excel_click" /> 

,我們會作出這樣的方法:

protected void uxPrenatalSubmit_Click(object sender, EventArgs e){ 
    string callerControlID = ((Control)sender).ID; 
    string gridveiwID = callerControlID.Replace("_exportbutton", ""); 
    GridView gv = (GridView) findControl(gridveiwID); 
    myCustomExcelCreatorMethod(gv.DataSource); //your method thingie here 
} 
+0

這看起來相當不錯,而且比我看到的複雜得多。 感謝您的例子 - 這將有很大的幫助! – BrianH 2010-08-05 16:58:17

+0

我只是調整和測試了這一點,它工作得很好 - 不知道爲什麼我追求自定義控件...這是一個更簡單的方法來做到這一點。再次感謝! – BrianH 2010-08-05 17:17:12

相關問題