Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行时的AspxGridView选择_C#_Asp.net_Aspxgridview - Fatal编程技术网

C# 运行时的AspxGridView选择

C# 运行时的AspxGridView选择,c#,asp.net,aspxgridview,C#,Asp.net,Aspxgridview,我的页面上有一个aspxGridView,我在运行时创建列。我还添加了CommandColumn,并将ShowSelectCheckBox设置为true。但在我选择一行并单击按钮获取行值后,AspxGridView.Selection.Count返回0。我在AspxButtons上创建了这个GridView,单击事件也用于分页,在Page\u Init上创建GridView。下面是创建AspxGridView的代码: Colenter code hereorCollection colorCol

我的页面上有一个
aspxGridView
,我在运行时创建列。我还添加了
CommandColumn
,并将
ShowSelectCheckBox
设置为true。但在我选择一行并单击按钮获取行值后,
AspxGridView.Selection.Count
返回
0
。我在AspxButtons上创建了这个
GridView
,单击事件也用于分页,在
Page\u Init上创建GridView
。下面是创建
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();
 }
我不知道我在哪里会犯错


感谢您的帮助。

您似乎没有指定行选择操作所需的ASPxGridView.KeyFieldName属性:

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

当您在运行时创建列时,您是每次都这样做,还是在if(!Page.IsPostback){}块中?如果您的任务只是选择当前行并在其上执行一些操作,那么为什么不呢;t使用RowCommand事件并检查commandname='select',然后获取当前行(类似于)@Mark i也在page_init创建列@SubFlash Dike,我不能使用该事件,因为用户首先选择他想要的行,然后单击按钮。所以,在我看来,这件事是没有用的。