当前位置:编程学习 > C#/ASP.NET >>

请各为大哥帮我看看

// 获得行索引
                int _rowIndex = int.Parse(e.CommandArgument.ToString());
                // 解析事件参数(在RowDataBound中增加的),从而获得被选中的列的索引
                int _columnIndex = int.Parse(Request.Form["__EVENTARGUMENT"]);
                // 设置GridView被选中的行的索引(每次回发后判断GridView1.SelectedIndex > -1则更新)
                _gridView.SelectedIndex = _rowIndex;
                // 绑定
                _gridView.DataBind();

                // 事件记录
                this.Message.Text += "单击GridView的行的索引为:" + _rowIndex.ToString()
                    + ";列索引为:" + _columnIndex + "<br />";

                // 获得被选中单元格的显示控件并设置其不可见
               * Control _displayControl = _gridView.Rows[_rowIndex].Cells[_columnIndex].Controls[1];
                _displayControl.Visible = false;
                // 获得被选中单元格的编辑控件并设置其可见
               * Control _editControl = _gridView.Rows[_rowIndex].Cells[_columnIndex].Controls[3];
                _editControl.Visible = true;
                // 清除被选中单元格属性以删除click事件
                _gridView.Rows[_rowIndex].Cells[_columnIndex].Attributes.Clear();


这段代码总是在报“索引超出范围。必须为非负值并小于集合大小”在打星号处报错。 --------------------编程问答-------------------- 在第一次执行RowDataBound方法时索引值为-1,所以在做时要判断一下 --------------------编程问答-------------------- 我在
RowDataBound 中是这样写的
if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // 从第一个单元格内获得LinkButton控件
            LinkButton _singleClickButton = (LinkButton)e.Row.Cells[0].Controls[0];
            // 返回一个字符串,表示对包含目标控件的 ID 和事件参数的回发函数的 JavaScript 调用
            string _jsSingle = ClientScript.GetPostBackClientHyperlink(_singleClickButton, "");

            // 给每一个可编辑的单元格增加事件
            for (int columnIndex = _firstEditCellIndex; columnIndex < e.Row.Cells.Count; columnIndex++)
            {
                // 增加列索引作为事件参数
                string js = _jsSingle.Insert(_jsSingle.Length - 2, columnIndex.ToString());
                // 给单元格增加onclick事件
                e.Row.Cells[columnIndex].Attributes["onclick"] = js;
                // 给单元格增加鼠标经过时指针样式
                e.Row.Cells[columnIndex].Attributes["style"] += "cursor:pointer;cursor:hand;";
            }
        } --------------------编程问答-------------------- 关注中
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,