2011-05-03 88 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;