【问题标题】:VB.NET Extension Method for GridviewVB.NET Gridview 扩展方法
【发布时间】:2016-07-08 13:45:16
【问题描述】:

我目前正在尝试为 gridview 类设置扩展方法,以便可以通过标题文本获取列的索引。我在 C# 中找到了以下代码:

 public static class ExtensionMethods
   {
    public static DataControlField GetColumnByHeader(this GridView grid, string name)
    {
        int index = -1;
        for (int i = 0; i < grid.Columns.Count; i++)
        {
            if (grid.Columns[i].HeaderText.ToLower().Trim() == name.ToLower().Trim())
            {
                index = i;
                break;
            }
        }
        return grid.Columns[index];
    }
}

来自http://www.softcodearticle.com/2013/06/asp-net-gridview-get-column-by-headertext/

我在 MSDN 上研究了扩展方法过程,但我能找到的只是关于字符串扩展器的信息。我非常熟悉继承和其他 OOP 原则,只是不了解 VB.NET 的确切格式。有人可以向我解释为 gridview 类提供扩展方法的格式吗?方法中的代码无关紧要,尽管我确实需要能够像给定代码中的人那样引用 gridview 'this'。

感谢任何帮助。谢谢。

【问题讨论】:

    标签: c# asp.net vb.net inheritance gridview


    【解决方案1】:

    在 VB.NET 中,您必须手动使用该属性。

    Imports System.Runtime.CompilerServices
    
    Module MyExtensions
    
        <Extension> _
        Public Function MyExtensionMethod(ByVal grid As GridView, ByVal name As String) As DataControlField
    
            ' ... your code here!
    
        End Function
    
    End Module
    

    【讨论】:

      【解决方案2】:

      为此,您需要使用&lt;Extension()&gt; 进行装饰

      Imports System.Runtime.CompilerServices
      
      Module ExtensionMethods
      
          <Extension()>
          Public Function GetColumnIndexByHeader(grid As GridView, name As String) As Integer
              For i As Integer = 0 To grid.Columns.Count - 1
                  If grid.Columns(i).HeaderText.ToLower().Trim() = name.ToLower().Trim() Then
                      Return i
                  End If
              Next
              Return -1
          End Function
      
      End Module
      

      然后这样称呼它,

      Dim indexOfYourHeader = GridView1.GetColumnIndexByHeader("your_header_name")
      

      文档:https://msdn.microsoft.com/en-us/library/bb384936.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 2013-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多