O erro abaixo é causado quando a página contém um controle DropdownList preenchido com datasource, e um dos registros na tabela principal não possui registro na tabela relacionada.
DropdownList has a SelectedValue which is invalid because it does not exist in the list of items.
A solução que adotei foi incluir o parametro AppendDataBoundItems="True" para que seja possível adicionar itens novos ao controle DropDownList e uma rotina de tratamento no evento onDataBound do controle (ondatabound="ddlOrigem_DataBound") que executa uma verificação de existência do registro que será atribuído o estado de selecionado. Repare que através do try catch é possível evitar a apresentação de mensagens de erro.
Veja o código da função abaixo:
protected void ddlOrigem_DataBound(object sender, EventArgs e)
{
FormView fv = frmEditar;
DropDownList ddl = (DropDownList)fv.FindControl("ddlOrigem");
ddl = sender as DropDownList;
ddl.SelectedIndex = 0;
try
{
ddl.SelectedValue = ((GetDataItem() as DataRowView).Row["Conteudo_OrigemID"]).ToString();
}
catch { }
}
Nenhum comentário:
Postar um comentário