2011-05-03 101 views
0

我的頁面上有aspxGridView,我在運行時創建了列。我還將CommandColumnShowSelectCheckBox設置爲true。但是當我選擇一行並點擊一個按鈕來獲取行值後,AspxGridView.Selection.Count返回0。我在AspxButtons上創建這個GridView Click事件也用於分頁,在Page_Init上創建gridView。下面是創建的代碼AspxGridView在運行時選擇AspxGridView

Colenter code hereorCollection colorCol = ConfAttributesManager.Instance 
                   .GetColors(); 

if (colorCol.Count > 0) 
{ 
    GridViewDataTextColumn grdColorCodeColumn = new GridViewDataTextColumn(); 
    grdColorCodeColumn.FieldName = "ColorCode"; 

    GridViewDataTextColumn grdDescriptionColumn = new GridViewDataTextColumn(); 
    grdDescriptionColumn.FieldName = "Description"; 

    gv_Attributes.Columns.Clear(); 
    gv_Attributes.Columns.Add(grdColorCodeColumn); 
    gv_Attributes.Columns.Add(grdDescriptionColumn); 
    GridViewCommandColumn grdCmdColumn = new GridViewCommandColumn(); 
    grdCmdColumn.ShowSelectCheckbox = true; 
    grdCmdColumn.VisibleIndex = 0; 
    gv_Attributes.Columns.Add(grdCmdColumn); 

    gv_Attributes.DataSource = colorCol; 
    gv_Attributes.DataBind(); 
} 

我不知道我在哪裏犯了一個錯誤?

感謝您的幫助。

+0

你每次都這樣做或者是在如果( !Page.IsPostback){}塊? – Mark 2011-05-03 12:42:41

+0

如果您的任務只是選擇當前行並在其上執行一些操作,那麼爲什麼不使用RowCommand事件並檢查commandname ='select',然後獲取當前行(類似http:// msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.85).aspx) – 2011-05-03 13:31:59

+0

@Mark我也在page_init創建了列。 @Subhlash堤防,我不能使用該事件,因爲用戶首先選擇他想要的行,然後單擊一個按鈕。所以那個在我的場景中沒有用的事件。 – mehmetserif 2011-05-03 14:17:29

回答

0

看來你沒有指定所需的行選擇操作ASPxGridView.KeyFieldName屬性:當您在運行時創建列

gv_Attributes.KeyFieldName = "ColorCode"; 
//gv_Attributes.KeyFieldName = Unique Key Field;