簡體   English   中英

沒有擴展方法屬性怎么解決

[英]No extension method attribute How can I solve it

當我使用

 protected void GenGridView() { var data = project.ObtainDataDescJSON(); Title = "show"; for (int rowCtr = 0; row < data.Num.Count; row++) { var buttonField = new ButtonField { ButtonType = ButtonType.Button, Text = "Show", CommandName = "Display" }; buttonField.Attributes.Add("data-toggle", "modal"); buttonField.Attributes.Add("data-target", "#myModal"); buttonField.CssClass = "btn btn-info"; ModelNumFieldsGrid.Columns.Add(buttonField); break; } }

在 C# 中定義按鈕我收到錯誤說沒有擴展屬性和沒有擴展 cssClass。

我試過

[AttributeUsageAttribute(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)]
public sealed class ExtensionAttribute : Attribute 

using System.Runtime.CompilerServices.ExtensionAttribute;

但不起作用。 我該如何解決

我的確切錯誤

 Error 2 'System.Web.UI.WebControls.ButtonField' does not contain a definition for 'Attributes' and no extension method 'Attributes' accepting a first argument of type 'System.Web.UI.WebControls.ButtonField' could be found (are you missing a using directive or an assembly reference?) C:\\Users\\s0\\Documents\\Visual Studio 2013\\WebSites\\Model.aspx.cs 55 25 Pred Error 7 'System.Web.UI.WebControls.ButtonField' does not contain a definition for 'CssClass' and no extension method 'CssClass' accepting a first argument of type 'System.Web.UI.WebControls.ButtonField' could be found (are you missing a using directive or an assembly reference?) C:\\Users\\s06\\Documents\\Visual Studio 2013\\WebSites\\Model.aspx.cs 74 25 Pred

C# 中的擴展方法允許您聲明可以調用的方法,就好像它們是類的方法一樣:

public class Button { } 

public static class ButtonExtensions 
{
    public static int GetArea(this Button button)
    {
        return button.Width * button.Height;
    }
}

使用此擴展方法,您可以調用:

Button b = new Button();
int area = b.GetArea();

刪除擴展方法時,會收到錯誤消息

“Button”不包含GetArea的定義,並且找不到接受Button類型的第一個參數的擴展方法GetArea

現在可能從來沒有擴展方法AttributesCssClass但編譯器猜測它曾經存在過,可能是因為當 IntelliSense 沒有選擇成員名稱時,大多數程序員甚至不會嘗試編譯。

簡而言之:編譯器告訴您ButtonField沒有這些成員。

確實 System.Web.UI.WebControls.ButtonField 不包含名為 CssClass 的屬性,您可以通過以下方式設置該類:

buttonField.ControlStyle.CssClass

此外,如果您需要向 ButtonField 添加自定義屬性,則需要在網格的 RowDataBound 事件中執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM