我正在创建一个网络应用程序,其中我有一个gridview和预渲染方法,我有以下代码
public View getView(int position, View view, ViewGroup parent)
{
final Filho filhoPosition = this.listaFilhos.get(position);
view = LayoutInflater.from(this.context).inflate(R.layout.lista_filho,null);
TextView textViewNomeFilho = (TextView) view.findViewById(R.id.textViewNomeFilho);
TextView textViewTelefoneFilho = (TextView) view.findViewById(R.id.textViewTelefoneFilho);
ImageView imageViewFotoFilho = (ImageView) view.findViewById(R.id.imageViewFotoFilho);
textViewNomeFilho.setText(filhoPosition.getNome());
textViewTelefoneFilho.setText(filhoPosition.getTelefone());
imageViewFotoFilho.setImageBitmap(filhoPosition.getFoto());
final ImageButton imageButtonConfigFilho = (ImageButton) view.findViewById(R.id.imageButtonConfigFilho);
imageButtonConfigFilho.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
filho = new Filho(filhoPosition.getIdFilho(),filhoPosition.getNome(),filhoPosition.getTelefone(),filhoPosition.getFoto(),filhoPosition.getLoginConfig());
Intent it = new Intent(context, CadastrarFilhoActivity.class);
it.putExtra("filho",filho);
context.startActivity(it);
}
});
return view;
}
但页面显示错误
指数超出范围。必须是非负数且小于 集合。参数名称:index
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.ArgumentOutOfRangeException:索引已经用完 范围。必须是非负的且小于的大小 采集。参数名称:index
在这一行
第329行:FileUpload fp = (文件上传)dgvEdit.Rows [dgvEdit.EditIndex] .FindControl(" fpTask&#34);
以下代码有什么问题
答案 0 :(得分:0)
显示此错误的原因是dgvEdit.Rows.Count<dgvEdit.EditIndex
中的Line No 329
。
您可以使用类似
的条件if (this.dgvEdit.EditIndex != -1 && dgvEdit.Rows.Count>=dgvEdit.EditIndex)
{
FileUpload fp = (FileUpload)dgvEdit.Rows[dgvEdit.EditIndex].FindControl("fpTask");
if (fp != null)
{
// You can apply condition here
fp.Enabled = true;
}
}
N.B:在将服务器控件呈现给页面之前,使用PreRender
事件执行任何更新。在此事件期间,可以保存服务器控件的视图状态的任何更改。在渲染阶段进行的此类更改将不会保存。
我认为您应该使用RowDataBound
。