(请教)指定的参数已超出有效值的范围。参数名: index

samcy100 2008-04-25 03:18:38
1. UserTable=new DataTable();
UserTable.Columns.Add("UserName");

//新添加一列(Beizhu),出现问题
DataColumn dc=new DataColumn("Beizhu",System.Type.GetType ("System.String"));
UserTable.Columns.Add(dc);

string[] Arr=this.AvailBanLiRen.Split(new char[1]{';'});
if(Arr.Length>0)
{
for(int i=0;i<Arr.Length;i++)
{
UserTable.Rows.Add(new object[1]{Arr[i]});
}
}
this.Datagrid1.DataSource=UserTable;
this.Datagrid1.DataBind();
this.dpDepartment.Visible=false;

2.
private void Datagrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
e.Item.Cells[0].Text="<input type=checkbox title='"+e.Item.Cells[1].Text+"' name='cbSelector' value='"+e.Item.Cells[0].Text+"'>"+e.Item.Cells[0].Text;
}
//e.Item.Cells[1].Text 这个是我添加的!

错误提示:(请教)指定的参数已超出有效值的范围。参数名: index ,
问题:那个列名Beizhu应该有添加进datatable吧,为什么会有这个错误呢?还是游标越界?请指教,要怎么在修改,怎么添加一个列名和应用这个列。
...全文
423 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
virusswb 2008-04-28
  • 打赏
  • 举报
回复
1、我这里试了一下,没有问题,webform
protected void Button2_Click(object sender, EventArgs e)
{
DataTable user = new DataTable();
user.Columns.Add("username");
DataColumn dc = new DataColumn("beizhu", System.Type.GetType("System.String"));
user.Columns.Add(dc);
string[] Arr = this.TextBox2.Text.Split(new char[1] { ';' });
if (Arr.Length > 0)
{
for (int i = 0; i < Arr.Length; i++)
{
user.Rows.Add(new object[1] { Arr[i] });
}
}
this.DataGrid1.DataSource = user;
this.DataGrid1.DataBind();
//this.dpDepartment.Visible = false;
}

2、和第一个是一起的吧,就是添加了一个复选框,没有问题,可以运行
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
{
e.Item.Cells[0].Text=" <input type=checkbox title='"+e.Item.Cells[1].Text+"' name='cbSelector' value='"+e.Item.Cells[0].Text+"'>"+e.Item.Cells[0].Text;
}

}
protected void Button2_Click(object sender, EventArgs e)
{
DataTable user = new DataTable();
user.Columns.Add("username");
DataColumn dc = new DataColumn("beizhu", System.Type.GetType("System.String"));
user.Columns.Add(dc);
string[] Arr = this.TextBox2.Text.Split(new char[1] { ';' });
if (Arr.Length > 0)
{
for (int i = 0; i < Arr.Length; i++)
{
user.Rows.Add(new object[1] { Arr[i] });
}
}
this.DataGrid1.DataSource = user;
this.DataGrid1.DataBind();
//this.dpDepartment.Visible = false;
}
virusswb 2008-04-28
  • 打赏
  • 举报
回复
是webform吧
virusswb 2008-04-28
  • 打赏
  • 举报
回复

void MyDataGrid_ItemDataBound(object src,DataGridItemEventArgs e){
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
DataRowView rv=(DataRowView)e.Item.DataItem;
//把性别列的bool值替换为相应的文字“男”或“女”
if((bool)rv["性别"]==true)
e.Item.Cells[2].Text="男";
else
e.Item.Cells[2].Text="女";
//根据“禁止登录”列的值设置CheckBox的选中状态
CheckBox ckb=e.Item.FindControl("ckb_denyLogin") as CheckBox;
if(ckb!=null){
ckb.Checked=(bool)rv["禁止登录"];
}
}
}
aduo_0513 2008-04-28
  • 打赏
  • 举报
回复
UserTable.Rows.Add(new object[1]{Arr[i]}); 添加行 只有一列的值把!
samcy100 2008-04-28
  • 打赏
  • 举报
回复
e.Item.ItemIndex>-1 应该没问题吧,游标应该是从0开始的吧?
ojekleen 2008-04-26
  • 打赏
  • 举报
回复
if(e.Item.ItemIndex>0)

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧