[英]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
現在可能從來沒有擴展方法Attributes
或CssClass
但編譯器猜測它曾經存在過,可能是因為當 IntelliSense 沒有選擇成員名稱時,大多數程序員甚至不會嘗試編譯。
簡而言之:編譯器告訴您ButtonField
沒有這些成員。
確實 System.Web.UI.WebControls.ButtonField 不包含名為 CssClass 的屬性,您可以通過以下方式設置該類:
buttonField.ControlStyle.CssClass
此外,如果您需要向 ButtonField 添加自定義屬性,則需要在網格的 RowDataBound 事件中執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.