C# 如何在asp.net中为gridview创建自定义web服务器控件

C# 如何在asp.net中为gridview创建自定义web服务器控件,c#,custom-server-controls,C#,Custom Server Controls,我有一个网站,有很多网页与网格视图。我希望能够在一些网格视图上添加一个“导出到Excel”按钮,因此我开始查找并找到自定义Web服务器控件—请参见示例 此自定义标签示例允许您将字符串参数作为输入传递给自定义控件: Visual Studio 2008 .Net 3.5 C# 我不太清楚如何开始。我想我创建了一个自定义按钮控件,其中网格视图的id可以作为一个参数传入-如果可能的话,我只是不确定如何做到这一点 我不认为我需要创建一个自定义的网格视图控件。。。或者,也许我通过查看自定义控件使

我有一个网站,有很多网页与网格视图。我希望能够在一些网格视图上添加一个“导出到Excel”按钮,因此我开始查找并找到自定义Web服务器控件—请参见示例

此自定义标签示例允许您将字符串参数作为输入传递给自定义控件:

Visual Studio 2008 
.Net 3.5 
C#

我不太清楚如何开始。我想我创建了一个自定义按钮控件,其中网格视图的id可以作为一个参数传入-如果可能的话,我只是不确定如何做到这一点

我不认为我需要创建一个自定义的网格视图控件。。。或者,也许我通过查看自定义控件使它变得太复杂了

请注意:我编写了代码,可以将网格视图导出到Excel文件,并且工作正常。我需要关于如何使代码更通用的帮助,这样我就可以通过网格视图将其放到我的ASP中,并让网格视图“可导出”


提前感谢你为我指明了正确的方向

如果我们采取一种方法,您的所有按钮都调用相同的导出方法来确定要使用哪个gridview,然后将相应的数据源发送给您的Excel创建者,该怎么办?不确定它是否会被认为是脏的,但它应该非常简单,不涉及自定义控件

例如:

假设我们将所有按钮命名为这样的名称,这样我们就可以提取出它们的父gridview

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

如果我们采取一种方法,您的所有按钮都调用相同的导出方法来确定要使用哪个gridview,然后将相应的数据源发送给您的Excel创建者,会怎么样?不确定它是否会被认为是脏的,但它应该非常简单,不涉及自定义控件

例如:

假设我们将所有按钮命名为这样的名称,这样我们就可以提取出它们的父gridview

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

这看起来相当不错——而且比我看到的要简单得多!谢谢你的例子-这将帮助很多!我刚刚调整并测试了它,效果很好-不知道为什么我要使用自定义控件。。。这是一种更简单的方法。再次感谢!这看起来相当不错——而且比我看到的要简单得多!谢谢你的例子-这将帮助很多!我刚刚调整并测试了它,效果很好-不知道为什么我要使用自定义控件。。。这是一种更简单的方法。再次感谢!
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
}